Repository navigation
Releases: drbiobit/snag
Release list
Snag v1.1.0 — AI Summarize
What's new (v1.1.0) — AI Summarize
A new Summarize tab turns any YouTube video, playlist, or channel into a clean Markdown article written by the AI endpoint you configure.
- Summarize page: 3-step pipeline — fetch transcript → review → AI article, with copy and download.
- Transcripts: single video, playlist, or whole channel. Collections are combined into one document; videos with no captions (or that time out / fail) are skipped so one bad video never blocks the rest.
- Parallel fetching: collection transcripts now fetch in parallel (4 workers) — large channels are much faster.
- AI settings: endpoint, model, API key, temperature, timestamps, and an editable system prompt — stored in the app's SQLite database, editable in Settings. No hardcoded endpoint or key.
- One-time setup: a skippable AI setup prompt on first launch (configurable later in Settings).
- Changelog: new in-app Changelog tab and docs page, version by version.
- Quick setup guide: collapsible setup card on the home page (Docker, Compose, source, systemd, PM2, Mac/Windows).
- Docker fix: the image now includes the
yt_summarize/pipeline scripts (previously missing, which broke Summarize in Docker).
Requirements
yt-dlp and ffmpeg on PATH (unchanged), plus youtube-transcript-api (now in requirements.txt). For Summarize you must configure an OpenAI-compatible endpoint in Settings.
Upgrade (Docker)
docker pull ghcr.io/drbiobit/snag:latest
docker rm -f snag
docker run -d --name snag -p 8000:8000 -v ./downloads:/data -v ./config:/config ghcr.io/drbiobit/snag:latestYour downloads and account are untouched. AI settings are optional — the app is fully usable without them.
Source
A clean source tarball (snag-1.1.0.tar.gz) is attached. To run from source:
tar xzf snag-1.1.0.tar.gz && cd snag-1.1.0
pip install -r requirements.txt
python snag.py # -> http://localhost:6909Snag v1.0.2
What's new (v1.0.2)
- SQLite auth: credentials and session secret now stored in a single
snag.dbdatabase instead ofusers.json+secretfiles. No more visibility or permission issues in the downloads folder. - Download history: every download is logged to the database. New History page shows past downloads with status, file, size, and timestamp. Buttons to clear history or reset credentials.
- Docker: Alpine 3.20 base image (~312 MB). Auth data lives on the
/configvolume (SNAG_CONFIG_DIR), downloads on/data(DOWNLOAD_DIR). - Fix: file tracking now correctly captures the final merged/converted file (was showing intermediate format streams).
- Docs: updated for SQLite, Alpine, and the new config directory.
Upgrade
docker pull ghcr.io/drbiobit/snag:latest
docker rm -f snag
docker run -d --name snag -p 8000:8000 -v ./downloads:/data -v ./config:/config ghcr.io/drbiobit/snag:latestYour downloads volume is untouched. You will need to create a new account on first login (old users.json is no longer read).
Commits since v1.0.1
79d7d7c Fix DEST_RE to match yt-dlp's actual output
dbc79cd SQLite auth + download history
e474227 Move auth files to .config/ folder + fix UI stall
b68e4b9 Docusaurus: reduce base font size
f1f3506 Docusaurus: set code font size
4500b3a Docusaurus: use Inter for body text
14caccc Docusaurus: change font to Source Code Pro
03ddc63 Update docs: Alpine references
d3b21b5 Fix Alpine: use su instead of gosu
17db6f0 Switch Docker base to Alpine 3.20
b93ced6 Fix Docker: chown mounted volumes
f2676db Add issue templates and PR template
Snag v1.0.1
What's new (v1.0.1)
-
Fix (Docker): auth data (
users.json,secret) now persists on the/datavolume. PreviouslyDATA_DIRdefaulted to./datainside the container whileDOWNLOAD_DIRdefaulted to/data(the mounted volume). On every container restart the/applayer reset, wiping the user store and making the app re-prompt for account setup — which made it look like downloads weren't saving to the configured directory. Downloads were actually being written to the volume correctly; the user just couldn't reach the downloads page because they kept hitting the setup screen.Fixed by setting
DATA_DIR=/datain the Dockerfile anddocker/docker-compose.ymlso auth data lives on the same mounted volume as downloads. -
README: documented the fix and the upgrade procedure (pull latest, recreate container, volume is untouched).
Upgrade
docker pull ghcr.io/drbiobit/snag:latest
docker rm -f snag
docker run -d --name snag -p 8000:8000 -v ./downloads:/data ghcr.io/drbiobit/snag:latestYour volume is untouched, so downloads persist. If you were hit by the old bug, your account may need to be re-created once — downloads in the volume are unaffected.
Commits since v1.0.0
1a231b1 README: document the Docker auth-data fix and upgrade procedure
cd088b2 Fix Docker: persist auth data on the /data volume
Snag v1.0.0
What's new (v1.0.0 update)
- Fix: keep running downloads alive across page refresh/navigation
- Docs: replace plain-Markdown docs with a full Docusaurus site, published on GitHub Pages
- Docs theme: app icon, green accent, Ubuntu Mono font
- README: rewritten — badges, hero screenshot, quickstart, comparison table, fixed broken doc links
- CI: bump Node 20 -> 24 (Node 20 is deprecated on GitHub runners)
- License: add MIT LICENSE
- Community: add CONTRIBUTING, SECURITY, and Code of Conduct
- UI screenshot assets added for README and docs hero
Full changelog since the initial v1.0.0 tag
85147ee Fix: keep running downloads alive across page refresh/navigation
8b3f83c few change in readme
cf240cf few change in readme
9a33e5a Add CONTRIBUTING, SECURITY, and Code of Conduct
be36018 Rewrite README: badges, hero screenshot, quickstart, comparison, fix broken doc links
3da6e14 Docs theme: use app icon, green accent, Ubuntu Mono font
9a7e760 Add UI screenshot assets for README and docs hero
f9ed98f Add MIT LICENSE
c2bce6c Bump CI Node version 20 -> 24 (Node 20 is deprecated on runners)
80d639a Replace plain-Markdown docs with a Docusaurus site
d0a0cab Simplify Pages workflow: publish docs/ directly, drop Jekyll
15e5591 Fix Pages workflow: use actions/jekyll-action@v4
0e5bd16 Add docs link to description and README documentation section
b3cca5b Add GitHub Pages docs site (index + pages workflow)