|
--- |
|
title: Youtube Downloader |
|
emoji: 🦀 |
|
colorFrom: pink |
|
colorTo: gray |
|
sdk: gradio |
|
sdk_version: 5.9.1 |
|
python_version: 3.11.5 |
|
app_file: app.py |
|
pinned: false |
|
--- |
|
# <span style='display: flex; align-items: center; gap: 10px;'><img src='https://cdn-icons-png.flaticon.com/512/1384/1384060.png' width='25'/> <img src='https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Youtube_Music_icon.svg/2048px-Youtube_Music_icon.svg.png' width='25'/>YouTube Downloader</span> |
|
|
|
This application uses |
|
- [`yt_dlp`](https://github.com/yt-dlp/yt-dlp) - For downloading Audio/Video from YouTube and YoutTube Music. |
|
- HF [`gradio`](https://www.gradio.app/) - For UI. |
|
|
|
## Cookies setup details |
|
*Note: This setup is only needed if running in hugging face (HF) spaces to avoid bot related errors*. |
|
|
|
1. **Download the YouTube Cookies** |
|
- Follow the instruction provided [here](https://github.com/yt-dlp/yt-dlp/wiki/Extractors#exporting-youtube-cookies) to download the YouTube cookies. |
|
- Rename the downloaded cookie as `cookies.firefox-private.txt` and place it in the current working directory |
|
2. **Convert cookie file content to `.env` file** |
|
- Simple copy paste will not work due to special characters |
|
- So, we will use the `cookies_to_env` function. |
|
- Uncomment the `# Convert cookie file to env and save locally` section and run the code |
|
- Remember to comment the code once the `.env` file is updated. |
|
3. **Set up or Update the Secrets in HF** |
|
- Copy the the `.env` content (only the value, and not the key) and paste it inside the Secrets (Private) > `FIREFOX_COOKIES` in Hugging Face space. |
|
4. **Deploy the changes to HF space, and Voila!** |
|
|
|
## `.env` file structure |
|
``` |
|
FIREFOX_COOKIES="<Formatted_Cookie_Content_Goes_Here>" |
|
USE_FIREFOX_COOKIES="False" # Set to "True" to use cookies |
|
``` |
|
|
|
## Additional resources |
|
- Check out the configuration (and README metadata) reference [here](https://huggingface.co/docs/hub/spaces-config-reference) |
|
|
|
## Potential Improvements |
|
- [ ] Making the code async. |
|
- [ ] Add support for playlists. |