File size: 2,046 Bytes
44484a9
 
 
 
 
 
 
5e8168b
44484a9
 
 
a219c8e
44484a9
a219c8e
 
 
 
 
0313094
a219c8e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b086139
a219c8e
 
 
0313094
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
---
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.