# dropout-dl dropout-dl is tool to download [dropout.tv](dropout.tv) episodes. It can download single episodes, seasons, or full series. * [Installation](#installation) * [How to Build](#how-to-build) * [Dependencies](#Dependencies) # Installation ## How to Build ``` cmake -S -B cd make ``` ### Dependencies ### Required * [cURL](https://curl.se/libcurl/) - Required for downloading pages and videos. ### Recommended * [SQLite](https://www.sqlite.org/index.html) - Required for retrieving cookies from browsers. This can be avoided by using the `--force-cookies` [option](#options). ### Optional * [libgcrypt](https://www.gnupg.org/software/libgcrypt/index.html) - Used for decrypting chrome cookies retrieved from the sqlite database. #### Void ``` sudo xbps-install -S libcurl sqlite-devel libgcrypt ``` #### Debian ``` sudo apt install libcurl4-gnutls-dev sqlite-devel ``` ## How to Use ``` ./dropout-dl [OPTIONS] ``` By default, dropout-dl will download the episode in the format `/SE.mp4` ### Options ``` --help Display this message --quality Set the quality of the downloaded video. Quality can be set to 'all' which will download all qualities and place them into separate folders --output Set the output filename --output-directory Set the directory where files are output --verbose Display debug information while running --force-cookies Interpret the next to arguments as authentication cookie and session cookie --series Interpret the url as a link to a series and download all episodes from all seasons --season Interpret the url as a link to a season and download all episodes from all seasons ``` ## Cookies ### Firefox Create a file named `firefox_profile` in the build directory and paste in your [firefox profile folder path](https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data) ### Chrome Install libgcrypt and create a file named `chrome_profile` in the build directory and paste in your chrome profile folder path (found on [chrome://version](chrome://version)) ### Other/No Sqlite Use the `--force-cookies` program option to manually input cookies. ## TODO - [x] Create tests - [x] Handle non-alphanumeric characters - [ ] Create static executables - [ ] Test build process on other setups with other OSs. ## Contributing [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://makeapullrequest.com) ### Issues If you have any issues or would like a feature to be added please don't hesitate to submit an issue after checking to make sure it hasn't already been submitted. Using the templates is a good place to start, but sometimes they're overkill. For example, if the program segfaults for you, you don't need to state that the intended behaviour is to not segfault. \ \ If you'd like to contribute a good place to start is looking at open issues and trying to fix one with a pull request. \ **Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://kcd.im/pull-request) ## Contributors - Moss - [mossx-dev](https://github.com/mossx-dev)