transistor · git:20260711.a5f7e74 · 2026-07-11 · sha256 d4bd6f02a02039c7
transistor git:20260711.a5f7e74A
Immutable. This exact content is served forever at /api/v1/blob/d4bd6f02a02039c7.
--- name: transistor description: 'Manage Transistor.fm podcast hosting from the terminal: view shows, list episodes, check analytics, and get subscriber counts. Use when the user mentions Transistor, podcast hosting, podcast analytics, show management, or episode tracking.' license: MIT compatibility: Requires TRANSISTOR_API_KEY env var (from Settings → API Keys in the Transistor.fm dashboard), Python 3.8+, and the `requests` library. Uses the Transistor.fm v1 REST API with JSON:API format responses. metadata: tags: transistor, podcast, podcast-hosting, analytics, api-client sources: https://transistor.fm/, https://developers.transistor.fm/ --- # transistor-cli — Transistor.fm Podcast Hosting Manage your Transistor.fm podcast shows, episodes, subscribers, and analytics from the terminal. Uses the Transistor.fm v1 REST API. ## Setup 1. Get your API key from Transistor.fm: **Settings → API Keys** (bottom of the page) 2. Set the environment variable: ```bash export TRANSISTOR_API_KEY="your-transistor-api-key" ``` `--help` and `--dry-run` work without credentials. ## Essential Commands ### user — Current user info ```bash transistor-cli user # email and timezone transistor-cli user --json # machine-readable ``` ### shows — List all shows ```bash transistor-cli shows # all shows with episode/subscriber counts transistor-cli shows --json # machine-readable with IDs ``` Shows title, episode count, subscriber count, and ID. ### episodes — List episodes ```bash transistor-cli episodes # last 20 episodes across all shows transistor-cli episodes --show 12345 # filter by show ID transistor-cli episodes --limit 50 # more results transistor-cli episodes --show 12345 --json # machine-readable ``` Get show IDs from `transistor-cli shows --json`. Shows season/episode numbers, title, status, duration, and publish date. ### analytics — Download and play analytics ```bash transistor-cli analytics # totals across all shows transistor-cli analytics --show 12345 # filter by show ID transistor-cli analytics --json # machine-readable with full totals ``` Shows total downloads and plays (when available). ## Global Flags All flags work in any position: ```bash transistor-cli --json shows # flag before subcommand transistor-cli shows --json # flag after subcommand transistor-cli --dry-run episodes # preview (no API call) transistor-cli --force episodes --limit 100 # override safety checks transistor-cli --quiet shows # suppress non-essential output transistor-cli --verbose episodes # detailed logging ``` Extra flag vs other CLIs: `--force` overrides internal safety checks (e.g. large limits). ## Known Gotchas - **API key from Settings → API Keys** — Not from the user profile or account page. Navigate to Settings → API Keys at the bottom of the Transistor.fm dashboard. - **JSON:API format** — Transistor uses the JSON:API spec. All responses are nested under a `data` key, and attributes are under `data[].attributes`. The CLI unwraps these for display, but raw JSON output shows the full JSON:API structure. - **Show IDs are required for filtered queries** — Use `transistor-cli shows --json` to get show IDs first, then pass them to `--show` for episodes and analytics. - **Pagination uses cursor-based pagination** — The `--limit` flag controls the page size. Default is 20 for episodes. The API returns `meta` with pagination info. - **Analytics are totals only** — The analytics endpoint returns aggregate totals (downloads, plays). Per-episode analytics are not available via this CLI. - **Transistor API is append-only via this CLI** — The CLI implements GET endpoints for reading. Creating/updating shows or episodes is not covered here. - **Rate limits** — Transistor.fm has rate limits. The CLI does not auto-retry on 429 responses. ## References - [scripts/transistor-cli](scripts/transistor-cli) — The CLI binary. Built following the cli-builder patterns: `--json`, `--dry-run`, `--force`, `--quiet`, `--verbose`, dual-output via `emit()`, lazy auth. - [Transistor API Docs](https://developers.transistor.fm/) — Official API reference. - [Transistor.fm Dashboard](https://dashboard.transistor.fm/) — Settings → API Keys for your API key.