This project aims to provide an easy way to catalog and find "rips" uploaded by all "ripping" channels on YouTube.
It is a PHP and MySQL based system that is currently hosted on ripdb.net, but can be entirely self-hosted should you want an offline copy.
See the releases page for stable releases of the site along with a full dump of the database (excluding all credentials and stuff of course).
The goal of this project is to provide a complete and detailed database of all rips that exist publicly on the internet. Each rip will be given appropriate tags and attributes, to help find rips by their contents, such as the songs used, jokes and references within the rip or other meta information related to the rip.
Ultimately, if someone wanted to find rips that contain certain songs or references, they would be able to do it here.
Some examples of what the database should be able to do:
- If someone wanted to find all rips that contain a song by "Daft Punk", they should be able to search for that.
- If someone wanted to find all rips that are from the video game "Undertale", the database should contain the data to do this.
- If someone wanted to find all rips that are "melody swaps" (a video game track in another game's soundfont or style), the database should provide this data.
- If someone wanted to find all rips by the channel "SiIvaGunner uploaded between May 2017 and May 2018, the database will provide this.
If you want to set this database up locally (with or without sample data), follow the steps below:
Ensure you have the following dependencies too:
- PHP 8.1 or newer (Tested with PHP 8.3.2)
- Composer for PHP
- FlightPHP
- PicoDB (>= 6.0.1)
- MySQL 8.0.41 or newer (Tested with 8.0.41)
To install and run locally:
- Clone this repository
git clone https://github.com/Mr-Kaos/The-Rip-DB.gitThe password is left blank in this file, so be sure to fill it in!
- Navigate to the file
site/private_core/config/and copy the filedb-template.phptodb.php. - Edit the file
db.phpand set its database constants to suit your database setup.The password is left blank in this file too!
- In the terminal, navigate to the
sqldirectory and run the commandphp install.php. This will deploy the database for you.Optional: When running this command, after the database is deployed, it will prompt to ask if you want to deploy sample data. Type
yand press enter to insert some sample data. - In the terminal, move into the
sitedirectory and runcomposer updateto download the two PHP dependencies. - Finally, in the same directory in the terminal, use
php -S localhost:8080to run the site locally.
A more detailed (and automated) guide will be produced as the project progresses.
The primary goal of this project is to provide a complete and detailed database that allows users to search for a rip based on its contents, i.e. tags. This will also be crowd sourced, meaning anyone can contribute to fill in any gaps of information that this database is missing.
This project has the following planned features complete:
- Core data structure
- Rips
- Rip categories/metadata
- Jokes
- Meta Jokes
- Metas
- Tags
- Channels
- Games
- Extra Features
- Playlists
- Accounts
- YouTube Playlist Import
- Playlist player
- Wiki links/references
- Data Search
- Search filters
- Page sorting
- RESTful API
- Mobile support (layout)
While the project is in its Beta phase, all major new features will be released as a new minor version, with minor additions and bug fixes as the patch number.
Once all planned features are complete and functional, Version 1.0.0 will be released.
This system is based around rips and their data. All rips are stored in a central table, with the data to help identify rips stored in their own tables (jokes and tags tables).
The ER diagram below outlines the system's design and how each component communicates with each other.
Rips and their jokes are the primary focus of this database. To make it easy for different rips to share the same jokes and attributes, a hierarchy of attributes is used to organise rips and their jokes. The hierarchy is as follows, from most broad to most specific:
- Meta
- Meta Joke
- Joke
- Tag
Metas are used to organise Meta Jokes.
Meta Jokes are used to categorise Jokes.
Jokes are used to categorise rips.
Tags are used to provide specific, but general information about a joke. e.g. if the joke is a song, the tag of "Theme Song" can be given to specify that the joke is a theme song.
The diagram below illustrates how some potential metas, meta jokes, jokes and tags are related to each other.
In case you are unfamiliar with rips, the term "Rips" generally refers to a bait-and-switch video that advertises a particular track from a video game's soundtrack, but is instead an altered version of said track, often a mashup, remix or rendition.
Some of the most notable channels that upload rips are SiIvaGunner, TimmyTurnersGrandDad and Mysikt.
There are other channels that have popped up over the years who also make rips, but often with less quality control and just to upload "joke" videos. While these may not be in the same spirit as traditional rips, these still aim to be cataloged.