A newer version of the Gradio SDK is available:
5.21.0
metadata
title: Youtube Downloader
emoji: 🦀
colorFrom: pink
colorTo: gray
sdk: gradio
sdk_version: 5.12.0
python_version: 3.11.5
app_file: app.py
pinned: false
YouTube Downloader
This application uses
Running locally
Installation
- First, install
python 3.11.5
(preferrably in a virtual environment). - Then, install by running
pip install gradio==5.9.1
- Finally, install remaining libraries by running
pip install -r requirements.txt
Start the service
gradio app.py # For iterative developments
or
python app.py
View in browser
Hit the browser at http://127.0.0.1:7860/
Running in Hugging Face Spaces
Cookies setup details
If running locally, the code will work right away. This setup is only needed if running in hugging face (HF) spaces or other deployments to avoid bot related errors as shown below.
ERROR - Download error: AAq06bS8UZM: Sign in to confirm you’re not a bot. Use --cookies-from-browser or --cookies for the authentication. See https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp for how to manually pass cookies. Also see https://github.com/yt-dlp/yt-dlp/wiki/Extractors#exporting-youtube-cookies for tips on effectively exporting YouTube cookies
Using this approach in publicly deployed services is discouraged, as the YouTube algorithm may disable the entire YouTube account from which the cookies are downloaded after continued use.
- Download the YouTube Cookies locally
- Follow the instruction provided here to download the YouTube cookies.
- Rename the downloaded cookie as
cookies.firefox-private.txt
and place it in the current working directory
- Convert cookie file content to
.env
file locally- 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
- Uncomment the
- Remember to comment the code once the
.env
file is updated.
- Set up or Update the Secrets in HF
- Copy the
.env
content (only the value, and not the key) and paste it inside the HF Secrets (Private) >FIREFOX_COOKIES
in Hugging Face space.
- Copy the
- 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
Potential Improvements
- Making the code async.
- Add support for playlists.
- Overcome youtube bot issue for publicly deployed service.