A video downloader for Firefox on Android. Two components:
- Firefox WebExtension (
extension/) — detects videos on the current page, shows them in a toolbar popup, and hands off download requests to the Android app. - Android Companion App (
android/) — receives download requests, manages the queue, executes downloads with resume support, and provides a searchable library.
Firefox Extension (detection + UI)
│
├─ localhost POST http://localhost:47891/queue (primary, when app running)
└─ vdl:// deep link (fallback, cold start)
│
Android Companion App
(download engine + library)
See docs/plans/ for the full implementation plan and docs/ideation/ for architecture decisions.
cd extension
npm install
npx web-ext lint
# Test on device (requires ADB + Firefox for Android):
npx web-ext run -t firefox-androidOpen android/ in Android Studio. Requires Android 10+ (API 29, minSdk 29).
Gradle sync, then build and run on a connected device or emulator.
The extension communicates with the Android app over two channels:
Localhost HTTP (preferred)
- Base URL:
http://localhost:47891 POST /queue—{"url":"...","title":"...","referer":"...","type":"mp4|hls|dash|webm"}GET /ping— returns{"alive":true}GET /status— returns queue counts
Deep Link (fallback)
- Scheme:
vdl://download?url=<encoded>&title=<encoded>&referer=<encoded>&type=<type>
video-downloader@akash.dev
com.dev.videodownloader