Skip to content

feat: playlists command for bulk playlist operations#25

Open
jdwit wants to merge 1 commit into
mainfrom
feat/playlists-command
Open

feat: playlists command for bulk playlist operations#25
jdwit wants to merge 1 commit into
mainfrom
feat/playlists-command

Conversation

@jdwit

@jdwit jdwit commented Jun 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds ytstudio playlists sub-app with 9 commands: list, show, create, update, delete, items, add, remove, reorder.
  • Targets the playlist surface YouTube Studio handles poorly at scale (bulk add by search, view-based reorder).
  • All writes are dry-run by default; --execute applies. Quota counters and partial-progress reporting on every bulk loop.

Highlights

  • Power-user one-liners:
    • ytstudio playlists add PL... --from-search "shorts compilation" -n 20 --execute
    • ytstudio playlists reorder PL... --by views --execute
  • Update re-specifies current snippet fields to avoid the silent-nuke trap.
  • Uploads playlists (UU...) are refused early for any mutating command.
  • Specific errors mapped: manualSortRequired, playlistContainsMaximumNumberOfVideos, videoNotFound, quotaExceeded.

Test plan

  • uv run ruff check .
  • uv run ruff format --check .
  • uv run pytest -q (238 passed)
  • Smoke against a real channel: list, show, create, add by search, reorder, delete.

Out of scope

  • YAML manifest sync (playlists sync FILE.yaml); follow-up PR.

Adds ytstudio playlists list/show/create/update/delete/items/add/remove/reorder
covering the playlist surface YouTube Studio handles poorly at scale.

Power moves: bulk-add by search query, reorder by views.
All writes are dry-run by default; --execute applies.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant