├── assets ├── demo.txt ├── 4.png ├── media1.png ├── media2.png └── media3.png ├── requirements.txt ├── app.py └── README.md /assets/demo.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | yt-dlp==2024.5.27 -------------------------------------------------------------------------------- /assets/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PRITHIVSAKTHIUR/All-In-One-Downloader/main/assets/4.png -------------------------------------------------------------------------------- /assets/media1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PRITHIVSAKTHIUR/All-In-One-Downloader/main/assets/media1.png -------------------------------------------------------------------------------- /assets/media2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PRITHIVSAKTHIUR/All-In-One-Downloader/main/assets/media2.png -------------------------------------------------------------------------------- /assets/media3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PRITHIVSAKTHIUR/All-In-One-Downloader/main/assets/media3.png -------------------------------------------------------------------------------- /app.py: -------------------------------------------------------------------------------- 1 | import gradio as gr 2 | import os 3 | 4 | def fetch(url, name, ext): 5 | opts = { 6 | "mp3": "-f \"ba\" -x --audio-format mp3", 7 | "mp4": "-f \"bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\"", 8 | }[ext] 9 | filename = f"{name}.{ext}" 10 | os.system(f"yt-dlp {opts} {url} -o {filename}") 11 | return filename 12 | 13 | # Create the Gradio interface 14 | interface = gr.Interface( 15 | fn=fetch, 16 | inputs=[ 17 | gr.Textbox(label="Link Address", placeholder="Enter the url here ..."), 18 | gr.Textbox(label="File name", placeholder="Example: file_name"), 19 | gr.Dropdown(["mp3", "mp4"], value="mp4", label="File type") 20 | ], 21 | outputs=gr.File(label="Download!"), 22 | description="Download from X, Youtube, Reddit, etc..", 23 | theme="xiaobaiyuan/theme_brief" 24 | ) 25 | 26 | # Launch the interface 27 | interface.launch() 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: All In One Downloader 3 | emoji: ⬇️ 4 | colorFrom: red 5 | colorTo: blue 6 | sdk: gradio 7 | sdk_version: 4.31.5 8 | app_file: app.py 9 | pinned: false 10 | license: creativeml-openrail-m 11 | --- 12 | 13 | ![alt text](assets/4.png) 14 | 15 | 🚀Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference 16 | 17 | 🚀Huggingface Spaces : https://huggingface.co/spaces/prithivMLmods/All-In-One-Downloader 18 | 19 | 🚀Docs for Space : 20 | 21 | # Make sure you have git-lfs installed (https://git-lfs.com) 22 | git lfs install 23 | 24 | git clone https://huggingface.co/spaces/prithivMLmods/All-In-One-Downloader 25 | 26 | # If you want to clone without large files - just their pointers 27 | 28 | GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/spaces/prithivMLmods/All-In-One-Downloader 29 | 30 | 31 | ## Enter the URL : 32 | ![alt text](assets/media1.png) 33 | 34 | ## 📂The Conversion Process starts 35 | 36 | ![alt text](assets/media2.png) 37 | 38 | ## 🔽The Final Converted file to Download 39 | 40 | ![alt text](assets/media3.png) 41 | 42 | ## Requirements.txt 43 | 44 | yt-dlp==2024.5.27 45 | 46 | . 47 | 48 | . 49 | 50 | . 51 | --------------------------------------------------------------------------------