A simple, beautiful Streamlit app to preview and download videos from Instagram, Facebook, and YouTube. It uses yt-dlp under the hood to extract streams and lets you choose quality for YouTube (video with audio, audio only, or video only).
- Instagram and Facebook video download with preview
- YouTube support with type selection:
- Video (with audio)
- Audio only
- Video only
- Organized preview tab with:
- Video player (left) and details + thumbnail + download (right)
- Resolution, bitrate, duration, codecs, file size, upload date, views, likes, comments, tags, page URL, description
- Default Streamlit light theme, clean native components
- Streaming download with progress and a final download button
- Python 3.9+
- Dependencies:
- streamlit
- yt-dlp
- requests
Install dependencies:
python -m pip install -r requirements.txtpython -m streamlit run main.pyIf your shell does not recognize streamlit, prefer the module form shown above.
- Open the app (usually at http://localhost:8501/).
- In the sidebar, select a platform: Instagram, Facebook, or YouTube.
- Paste a public video URL and click Fetch.
- After fetching:
- Instagram/Facebook: preview shows the video, details, and a Download MP4 button
- YouTube:
- Choose Type: Video (with audio), Audio only, or Video only
- Choose Quality from the available list
- Click Download Selected
- Public posts work out-of-the-box. Private or age-restricted content may require authenticated cookies and can fail without them.
- On YouTube:
- Lower resolution formats are often progressive (video+audio in one file)
- Higher resolutions are commonly video-only; choose “Video only” if you want the raw track, or ask for muxing support (see below)
If you want the highest-resolution video merged with the best audio into a single MP4, this can be added using yt-dlp’s format selection and post-processing. Open an issue or request enhancement and we’ll wire it up.
- “Enter a valid URL”: Ensure the URL is correct and belongs to the selected platform.
- “Failed to fetch”: Network issues, rate limits, private posts, or site changes can cause extraction to fail. Try again or switch networks.
- Streamlit not found: Use
python -m streamlit run main.py. - yt-dlp CLI warning: You may see a PATH warning for
yt-dlp.exe; it’s fine when using the Python module.
- Only download content you own or have permission to download.
- Respect platform Terms of Service and local laws.
- Do not share private or sensitive tokens/secrets.
Developed by Apurba Khanra
- Main app: main.py
- Dependencies: requirements.txt