Skip to content

CasperKristiansson/Podcast-Tracker

Repository files navigation

Podcast Tracker preview

Podcast Tracker

Podcast Tracker keeps tabs on every show you follow by syncing with the Spotify catalog so new releases surface automatically. A dedicated episode page highlights the latest drops and gives you quick context before you press play. Each show has its own page with rich details, letting you decide what deserves a spot in your queue. Your personal profile page remembers listening history and makes it easy to pick up where you left off while discovering fresh episodes.

Technologies

CLI (Terminal UI)

The repo now includes a first-class CLI app in apps/cli with GraphQL feature parity:

  • Profile stats + library browsing
  • Global podcast search with subscribe/unsubscribe
  • Show detail + episode pagination
  • Episode progress actions (single, next, all)
  • Show rating/review and drop/unsubscribe actions
  • OAuth login (Cognito Authorization Code + PKCE)

CLI backend config

The CLI now ships with live, non-secret production defaults for:

  • PODCAST_TRACKER_APPSYNC_URL
  • PODCAST_TRACKER_COGNITO_DOMAIN
  • PODCAST_TRACKER_COGNITO_CLIENT_ID
  • PODCAST_TRACKER_COGNITO_REDIRECT_URI (default http://localhost:4321/auth/callback)
  • PODCAST_TRACKER_COGNITO_LOGOUT_URI (default http://localhost:4321/)

You only need to set env vars when you want to override those defaults (for local/staging environments).

Commands

npm run cli:dev
npm run cli:build
npm run cli:start
npm run cli:test
npm run cli:test:e2e
npm run cli:verify:e2e

Run options

Option A: run without global install (recommended for local dev)

npm run cli:start -- auth login
npm run cli:start -- auth status
npm run cli:start

Option B: install the podcast-tracker command globally from this workspace

npm run cli:build
npm link --workspace apps/cli
podcast-tracker auth login
podcast-tracker

If podcast-tracker is still not found after linking, ensure your npm global bin is on PATH:

npm config get prefix
# add "<prefix>/bin" to PATH in ~/.zshrc, then restart shell

Keybindings

  • Global: / search, ? help, q back/quit
  • Lists: j/k move, Enter open/select
  • Home: s sort, f filter, n mark next, u unsubscribe
  • Show: Enter toggle episode progress, n mark next, a mark all, s subscribe toggle, d drop, t rate, f cycle episode filter (all/unplayed/watched), o open URL, ] load more episodes

Live E2E Tests

The CLI now has live end-to-end tests in apps/cli/src/__tests__/live.e2e.test.ts. They are non-destructive (read-only) and require:

  • built CLI artifacts (npm run cli:build)
  • an authenticated session file (podcast-tracker auth login)

Run:

npm run cli:test:e2e

Full gate (lint + unit/integration + build + live E2E):

npm run cli:verify:e2e

Below are a few interface captures from the latest build. They highlight the profile dashboard, podcast search flow, listening library, and show detail experience.

Profile dashboard and podcast search Library overview and show detail

About

Podcast Tracker keeps tabs on every show you follow by syncing with the Spotify catalog so new releases surface automatically.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages