gitmyhub

snaffle

TypeScript ★ 0 updated 19d ago

A terminal app that downloads videos from popular sites and converts video, audio, and PDF files, all running locally on your own computer.

TypeScriptNode.jsyt-dlpffmpegpdf-libsetup: easycomplexity 2/5

Snaffle is a terminal tool for grabbing videos from the web and converting media files, all without uploading anything to a server. Everything runs on your own machine, which avoids the sketchy download sites full of fake buttons and watermarks, and it avoids sending your private files to someone else's server just to convert them.

To use it, you install Node.js and then run npx snaffle. The tool automatically fetches the yt-dlp and ffmpeg programs it needs the first time you run it, so there is nothing else to set up by hand. Finished files are saved into a Downloads/snaffle folder on your computer.

The grab feature lets you paste a link from YouTube, TikTok, Facebook, Instagram, X, or over a thousand other sites supported by the underlying yt-dlp project, and choose to save it as an MP4 video at a chosen quality or as an MP3 audio file. The convert feature includes a built in file browser so you can point to any file on your computer, and it will only show formats that make sense for that file, such as turning a video into a smaller MP4, an MP3, an M4A, or a WAV. There is also a trim tool that cuts a section out of a video or audio clip by typing a start and end time, done quickly without re-encoding the whole file.

A separate set of PDF tools works fully offline using a JavaScript library called pdf-lib. These let you turn a set of images into a single PDF, merge multiple PDFs together, or split specific pages out of a PDF using a simple page range.

All of these jobs, whether downloads, conversions, or PDF tasks, run in a queue you can watch, showing progress, speed, and estimated time remaining. The project notes that downloading from a platform may be subject to that platform's terms of service and to copyright law, so it is meant for content you are actually allowed to save. The project is released under the MIT license.

Where it fits