Skip to content

Repository files navigation

Mbedly

A full-featured video downloader & web scraper — makes a video from literally everything.

Give Mbedly a page URL and it will hunt down every embedded video on it, let you pick a quality (144p → 4K, or mp3), and download them all with a live progress bar. Fully cross-platform: Windows, macOS, Linux, and Android (Termux).

Features

  • 🔍 Scrapes any page and extracts every embedded video URL (YouTube, Facebook, LiviVideo, native .mp4, HLS .m3u8).
  • ▶️ YouTube — watch / youtu.be / embed / shorts / live URLs, with title & channel from oEmbed.
  • 📚 Mahara-Tech courses — dump every lecture of a course (cookie header support).
  • 🎚️ Quality selection — 144p, 360p, 480p, 720p, 1080p, 2K, 4K, and mp3 audio.
  • ⬇️ Batch mode — grab one video, several, or ALL at once.
  • 🖥️ Textual dashboard — a btop/opencode-style full-screen TUI. No mouse required.
  • 📱 Flutter app — a cross-platform UI (flutter/mbedly_app) backed by the local mbedly-api; live progress, history, playlists.
  • 📜 Download history kept in ~/.mbedly/history.json.
  • 🧩 Clean engine layer (mbedly.engine) — pure Python, reused by the dashboard, the JSON API, and the Flutter app.

Installation

Requires Python 3.9+, ffmpeg, and the textual dependency (installed automatically).

git clone https://github.com/ammar0xff/Mbedly.git && cd Mbedly
./install.sh          # Debian/Ubuntu, macOS, Termux, Git Bash / WSL

or manually:

python -m pip install .
mbedly --help
  • Windows (native): py -m pip install . (ffmpeg via winget install ffmpeg)
  • macOS: brew install ffmpeg && pip3 install .
  • Termux: pkg install -y ffmpeg && pip install .

Usage

Dashboard (like btop / opencode):

mbedly                 # opens the full-screen dashboard on a terminal
mbedly --tui "URL"     # open the dashboard with a URL already loaded

Dashboard keys: Enter on the URL box analyses a page and shows every video with its real title (labels resolved automatically). ↑/↓ select a result, d downloads it, a downloads all. Pick a quality (144p → mp3), watch live progress/speed, then hit download. ? shows all shortcuts, r shows download history, q / Ctrl+Q quits, / focuses the URL box.

Direct command:

mbedly "https://www.youtube.com/watch?v=dQw4w9WgXcQ"          # 1080p default
mbedly "URL" -q 720p                                          # pick quality
mbedly "URL" -q mp3                                           # audio only
mbedly "URL" -q 1080p -n ALL -o ~/Videos                      # every video found
mbedly "https://maharatech.gov.eg/course/view.php?id=X" -c "cookie editor header"
mbedly -h                                                    # help

JSON API (the Flutter app's backend — stdlib only, runs anywhere Python does):

mbedly-api                 # http://127.0.0.1:8765
mbedly-api --port 9000 --host 0.0.0.0   # expose to LAN devices
curl http://127.0.0.1:8765/health
curl -X POST http://127.0.0.1:8765/scrape -H 'Content-Type: application/json' -d '{"url":"https://..."}'
curl -X POST http://127.0.0.1:8765/download -H 'Content-Type: application/json' -d '{"urls":["https://..."],"quality":"720p"}'

Flutter app (reuses the engine through the API):

cd flutter/mbedly_app
flutter pub get && flutter run -d chrome     # any device/web target

Roadmap

  • Scrape any page for embedded video links & download them
  • YouTube (watch / embed / shorts / live) with metadata
  • Playlist & serialized episode downloads
  • Mahara-Tech course extraction (cookie support)
  • Facebook, LiviVideo, native .mp4, HLS .m3u8
  • Cross-platform full-screen dashboard (Textual) with progress bars & download history
  • JSON API (mbedly-api) + Flutter app (flutter/mbedly_app) wired to it
  • CI — pytest + flutter analyze + flutter test + flutter build web on GitHub Actions
  • Queue management + parallel downloads
  • Udemy, Coursera, Alison password-gated course extraction
  • Flutter: queue screen, resume/cancel, settings

Development

pip install -e ".[dev]"
pytest

License

Distributed under the MIT License.

Contact

Ammar Mohamed — ammar0xf@gmail.com

Project Link: https://github.com/ammar0xff/Mbedly

Acknowledgments

  • yt-dlp — the download engine
  • Rich — the terminal UI
  • Textual — the full-screen dashboard

About

A Full-Featured Video Downloader Supports Many Sites And Makes A Video From Literally Everything!

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages