# Scdownload

> Download a movie or TV episode by name (or TMDB id) via vixsrc.to, showing a menu-bar progress indicator and notifying on completion. Use when the user calls /scdownload, names a film/series to download, or pastes a StreamingCommunity / vixsrc / TMDB link.

- Skill: `yoddikko/scdownload` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add yoddikko/scdownload`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yoddikko/scdownload/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Yoddikko (https://skillmd.com/u/yoddikko)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/yoddikko/scdownload

---


# scdownload

vixsrc.to (stable domain, TMDB-id based) → vendored StreamingCommunity HLS downloader.
Output: `~/Downloads/StreamingCommunity/{Movie,Serie}/`.

Token budget: only step 1 uses your reasoning. Steps 2–3 are one launch command; **do not
tail/read the log or poll** — the menu-bar shows progress and a notification fires on finish.

## 1. Resolve the TMDB id (the only non-programmatic step)
From the user's title, work out the TMDB id (you know many; else WebSearch `"<title>" tmdb id`
or read a themoviedb.org URL). State the title + id you picked. If unsure it's on vixsrc:
`curl -s "https://vixsrc.to/api/movie/<id>?lang=it"` → JSON = available, `404` = not.

## 2. Launch (background, single command)
Specs (one or more in the same command — they download sequentially):
- `movie:<tmdb>`
- `tv:<tmdb>:<season>`            → whole season
- `tv:<tmdb>:<season>:<episode>`  → one episode
- append `lang=en` (etc.) to change audio/subs language (default `it`)
```
~/.claude/tools/scdl/.venv/bin/python ~/.claude/tools/scdl/scdl.py <spec> [<spec> ...] > ~/.claude/tools/scdl/last.log 2>&1
```
Examples: `scdl.py movie:27205` · `scdl.py tv:1399:1` (GoT season 1) ·
`scdl.py movie:27205 movie:101299` (two films) · `scdl.py tv:1399:1:1 tv:1399:1:2`.
Run with `run_in_background: true`. It auto-opens the **menu-bar indicator** (overall
`⬇ 3/10 · 45%`; click it for the per-item list). Re-running a season skips episodes already
downloaded. Tell the user one line: what's downloading + "watch the menu bar; notification on finish".

## 3. Finish
You'll be notified when the background task exits. Then, in ONE command, report the file:
`ls -lhtR ~/Downloads/StreamingCommunity | head`. If it never produced an mp4 and the log has
`Failed segments: N>0`, say the CDN dropped segments — re-run the same command.

Notes: menu-bar app = `menubar.py` (rumps), auto-quits on done/error. Manual live view if wanted:
`bash ~/.claude/tools/scdl/scwatch.sh`. ffmpeg required (Homebrew).

