This is a (Python) Flask-based Downloader application that allows you to download social media videos or extract audio from them using yt-dlp. This app was vibe-coded with Claude 3.7 Sonnet, ChatGPT o3-mini-high and Google Gemini 2.5 experimental.
- Ensure you have Python 3.10 or higher installed on your system.
- Install Deno (required for YouTube):
- macOS/Linux:
curl -fsSL https://deno.land/install.sh | sh - Windows:
winget install --id=DenoLand.Deno
- macOS/Linux:
- Clone or download the project files.
- (Optional) Create and activate a virtual environment:
- On Linux/Mac: python3 -m venv venv source venv/bin/activate
- On Windows: python -m venv venv venv\Scripts\activate
- Install the dependencies using pip: pip install -r requirements.txt
- Run the Flask application: python run.py
- Open your web browser and navigate to: http://localhost:8080
- Enter a YouTube URL in the input field and click "Fetch Video" to retrieve video information and available download options.
- Choose your preferred format (video or audio) and click "Download" to start the download.
- Once the download is complete, a download link will be provided so you can save the file to your device.
-
FFmpeg Requirement: If you plan to extract audio (MP3), ensure that FFmpeg is installed on your system. Download it from: https://ffmpeg.org/download.html
-
Twitter/X Authentication: Twitter/X now requires authentication for many videos. To enable authenticated downloads:
- Export cookies from your browser using a browser extension (e.g., "Get cookies.txt LOCALLY")
- Save the file as
cookies.txtin the project root directory - The app will automatically use the cookies for Twitter/X and other platforms
-
HTTP 403 Errors: The app uses enhanced HTTP headers to mimic a browser request. If you continue to face HTTP 403 errors, consider updating yt-dlp to the latest version or supplying a cookies file for age-restricted/region-locked content.
-
Cleanup: The application automatically cleans up downloads older than 2 hours.
-
Documentation: For more information, refer to: - Flask Documentation: https://flask.palletsprojects.com/ - yt-dlp Documentation: https://github.com/yt-dlp/yt-dlp
Enjoy and let me know if you have any further questions!
Marco van Hylckama Vlieg