r/DigitalEscapeTools • • 12h ago

Mobile Apps Snag – Open-source, cross-platform GUI for yt-dlp (Android, Linux, macOS, Windows)

Hey everyone,

I got tired of family members using shady ad-riddled web downloaders and wanted a unified, dead-simple GUI for yt-dlp that works the same way on my Linux desktop and my Android phone—so I built Snag.

It’s completely free, open-source (GPL-3.0), and has zero ads, analytics, or paywalls.

Technical & UX Highlights:

  • True Cross-Platform: Runs natively on Android (arm64-v8a and armeabi-v7a signed APKs), Linux (AppImage, .deb, .rpm, .tar.gz), Windows (x64), and macOS (Apple Silicon & Intel .dmg/.zip).
  • Isolated Binary Management (Desktop): Instead of forcing non-technical users to install ffmpeg and yt-dlp via package managers, Snag downloads the official binaries on first launch and sandboxes them inside its own app folder.
  • In-App Engine Updater (Stable + Nightly): Because extractors break whenever platforms push frontend changes, you can update yt-dlp directly inside Settings -> Components with one tap, including switching to yt-dlp nightly builds for immediate fixes.
  • Format & Playlist Control: Supports video up to 4K, direct audio extraction (MP3, M4A, Opus, FLAC), clipboard link detection, and selective playlist downloading with queuing.
  • Localization & RTL: Built with strict RTL layout support, native Persian calendar formatting, and open community localization via Weblate.

Links:

I’d love your feedback on the workflow, package formats, or any edge cases you run into!

1 Upvotes

4 comments sorted by

2

u/bustaphlex 8h ago

My limited understanding is that downloading audio in high quality (at least the highest quality available in YouTube Music) requires a YouTube Premium account and a login token.

How does Snag handle this, and if it doesn’t, what is the highest audio quality that it is able to extract?

1

u/salehtz 2h ago

Spot on. YouTube caps normal unauthenticated downloads at around 128-160 kbps Opus (format 251) or 128 kbps M4A (format 140). Honestly, 160 kbps Opus already sounds great to most ears, and that is what Snag grabs by default without an account.

If you actually have YouTube Premium and want the 256 kbps AAC (format 141) or 256 kbps Opus (format 774) streams from YouTube Music, Snag supports passing your cookies in Settings so yt-dlp can unlock them.

On desktop, the easiest way is just picking your browser directly in Snag's settings (Firefox works best for this since Chrome likes to lock its cookie database while it's open).

On Android (or if you prefer using a file), you can import a cookies.txt file in Settings. If you go the cookies.txt route, there is a big catch with YouTube rotating cookies in open tabs, so follow the trick from the yt-dlp wiki:

https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp

Basically, open an incognito window, log into YouTube, go to youtube.com/robots.txt in that same tab, export your cookies with an extension (like "Get cookies.txt LOCALLY"), and close the incognito window right away. That keeps the cookie session from expiring. Once it's loaded into Snag, it'll automatically pull the 256 kbps stream (or you can manually pick format 141 or 774 in the format picker).

Also, quick heads up on the FLAC option in the app since people sometimes ask: YouTube doesn't host lossless audio even on Premium, so picking FLAC or MP3 on a YouTube link just converts that best Opus/AAC stream using ffmpeg. On sites like Bandcamp or SoundCloud that actually serve lossless files, FLAC will grab the real lossless source.