Scoop
A free, local-first image, video & audio downloader for Android.
No Scoop account. No backend. No ads. Just paste a link and download.
Website · Download the latest release · Report a bug · Request a feature
Screenshots
💡 What is Scoop?
Scoop resolves a pasted or shared video link, lets you configure exactly how you want it saved,
and downloads it straight to your device through a bundled yt-dlp
runtime — no server in the middle, no Scoop account, nothing leaving your phone beyond the request
needed to fetch the media itself.
📖 Features
Downloading
- Paste or share a link from any app — Scoop registers as a share target, so you can send
a URL straight to it from your browser or any app's share menu.
- Analyze before downloading: see the title, uploader, duration, and thumbnail before
committing to anything.
- Video or audio-only, chosen per download.
- Playlist support: paste a playlist link and pick exactly which videos to grab from a
checklist — each one downloads as its own queued item, and your history groups them together
by playlist title.
- Live download queue with real-time progress, running as a foreground service so downloads
keep going in the background, with a configurable limit on how many run concurrently.
Quality & format
- Highest / preferred cap / Low quality — selectors always retain an audio stream, and the
configured 1080p/720p/480p default is applied to both individual and playlist downloads.
- Configurable default video quality, video container, audio format, and audio quality in
Settings, for videos you don't want to hand-pick every time.
- Embed subtitles — burns in whatever subtitle tracks the source has (manual or
auto-generated) directly into the video file.
- Embed thumbnail — embeds the source's thumbnail as cover art, for both video and audio
downloads.
Image downloader
- Direct image links, including extensionless URLs, with original bytes and format preserved without resizing or recompression.
- Public image galleries and webpages — discover photos from supported gallery sites, with an HTML image picker as a fallback.
- Instagram photos — download accessible post images, with optional Instagram sign-in when a post requires an authenticated session. The same sign-in is used for Instagram reels and videos in Video & audio mode.
- Preview and select — paste or share a link, choose Images, then download individual pictures, a selection, or all results through the existing queue.
- Image settings — open Settings > Images, below Downloads, to choose whether gallery images start selected and access the save-folder settings.
- Save and manage — images save to Pictures/Scoop on Android 10+, or your chosen custom folder. Open, share or delete completed images from history; existing incognito and retry controls apply.
- Support varies by website. Private or restricted posts, expired links and JavaScript-only pages may be inaccessible. See image support and limits.
Advanced
- Custom command: an optional field for raw
yt-dlp arguments, applied on top of Scoop's own
options — for anything the UI doesn't expose yet (SponsorBlock, custom postprocessing, and so
on).
Download management
- A full download history with filtering (All / Downloading / Completed / Failed), grouped by
date.
- Swipe to delete with an undo window, safe to navigate away from mid-swipe.
- Per-download detail view with retry, cancel, and file actions.
- Bulk clear of history and files with one confirmation; automatic retention clears history
records only and keeps the downloaded media.
Reliability & network behavior
- Wi-Fi-only downloads toggle, so nothing eats your mobile data unless you say so.
- Auto-retry policy for downloads that fail transiently.
- Download speed limiting and a battery-pause threshold so background downloads don't
drain your phone.
- Configurable history retention that keeps downloaded files.
Storage
- Choose your own save folder via Android's Storage Access Framework, or use Scoop's default
Movies/Music folders.
- A storage usage view showing space used across every storage volume on your device, broken
down by video vs. audio.
Appearance
- Material 3 UI with dynamic color (Android 12+ wallpaper-based theming).
- Five built-in accent palettes, for devices without dynamic color or if you just prefer one.
- Light / Dark / System theme, applied consistently across the whole app — including the
status bar.
- Little sounds for the moments that matter: a chime when downloads finish (once per batch, not
per file), a gentle tone if one fails, and a swish for delete and undo. They stay quiet when your
phone is on silent or vibrate, and can be turned off in Settings › General › Sounds.
Privacy
- No Scoop account, no backend, no analytics, no ads.
- Everything runs on-device; see
PRIVACY.md for the full breakdown.
🚀 Usage
- Get a link to a video or audio page from your browser or another app.
- Send it to Scoop — share it directly to Scoop, or paste it into Scoop yourself.
- Review what Scoop found — title, uploader, duration, and thumbnail.
- Configure the download — video or audio-only, Highest/Low quality (or your configured
defaults), and optional subtitle/thumbnail embedding.
- Start the download and track its progress from the live queue.
- Find your file in the Downloads tab, or on Android 10+ in your device's Movies/Scoop or Music/Scoop
folder (or wherever you configured Scoop to save to).
⬇️ Installation
Grab the latest signed APK from the Releases page, open it, and allow
"install unknown apps" for your browser or file manager when prompted. Choose
Scoop-arm64-v8a.apk for most modern phones or Scoop-armeabi-v7a.apk for 32-bit ARM devices;
the legacy Scoop.apk download is also ARM64.
🛠️ Building from source
Requirements: JDK 21, Android SDK (compileSdk 35), an ANDROID_HOME/local.properties pointing
at it.
cd android
./gradlew :app:assembleDebug
The debug APK lands in android/app/build/outputs/apk/debug/.
To build for one CPU architecture, pass -PscoopAbi with arm64-v8a, armeabi-v7a,
x86_64, or x86. The normal release remains arm64-v8a when the property is omitted.
./gradlew :app:assembleDebug -PscoopAbi=x86_64
Maintainers with the release keystore can build the signed arm64, 32-bit ARM, and x86_64 APKs in
one pass from PowerShell:
.\scripts\build_release_variants.ps1
🧰 Tech stack
Kotlin, Jetpack Compose, Material 3, Koin (DI), Room (download history), MMKV (preferences).
Min SDK 24, target/compile SDK 35.
📦 Third-party dependencies and licensing
Scoop depends on io.github.junkfood02.youtubedl-android (a maintained fork of
yausername/youtubedl-android), which bundles:
- yt-dlp (Unlicense) — the extraction/download engine
- FFmpeg (LGPL/GPL depending on build) — media muxing/transcoding
Because Scoop links against this GPL-family native stack, Scoop itself is licensed under the
GNU General Public License v3.0 — see LICENSE.
The image feature also bundles gallery-dl and its Python dependencies as a separate process, and uses jsoup for HTML discovery. Versions, licenses and source links are listed in image dependency notices.
The current F-Droid compatibility audit records the resolved dependency
licenses, binary-build blockers, and work required before submitting Scoop to the main repository.
🤝 Contributing
Contributions are welcome — see CONTRIBUTING.md for how to build the project,
what to test before opening a PR, and coding expectations.
🐛 Issues
Found a bug or have an idea? Open a
bug report or
feature request — both link to a short form so
issues have what's needed to act on them.
🧱 Credits
Scoop's UX and architecture were designed with Seal, by
JunkFood02, studied closely as a reference for how a
native, on-device yt-dlp downloader should look and behave. No Seal source code, assets, or
branding are used anywhere in this project — Scoop is an independent implementation under its own
name, icon, and package id — but the debt to Seal's design is real, and it's credited here with
thanks. If you're looking for a mature, feature-rich app in this space today, go check out Seal.
⭐ If Scoop is useful to you, consider starring the repository — it helps others discover the project.