feat(youtube): add subscription and playlist mutations#767
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed June 12, 2026, 8:27 PM ET / 00:27 UTC. Summary Reproducibility: unclear. The review failed before ClawSweeper could establish a reproduction path. Review metrics: none identified. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Risk before merge
Maintainer options:
Next step before merge
Review detailsBest possible solution: Retry the Codex review after fixing the execution failure. Do we have a high-confidence way to reproduce the issue? Unclear. The review failed before ClawSweeper could establish a reproduction path. Is this the best way to solve the issue? Unclear. Retry the review first so ClawSweeper can evaluate the actual issue and fix direction. AGENTS.md: unclear because the file could not be read completely. Codex review notes: model internal, reasoning high; reviewed against 31c4e0b427ed. Label changesLabel changes:
Label justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
Real-account proofTested against a real YouTube account after the read/write OAuth split (commit cd352b7). All five new commands confirmed working. Account email redacted throughout.
|
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
Evidence of new commands + P1 fix (re-review request)CI is now green: all jobs pass on run 27447407629.
|
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
5b81490 to
91944fd
Compare
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace the stub Run with a real API call to svc.Subscriptions.Insert, remove the required:"" kong tag, and add a test covering the happy path. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds two new subcommands to `gog youtube playlists`: - `create --title TITLE [--description DESC] [--privacy public|unlisted|private]` Creates a new playlist for the authenticated account and prints the playlist ID. - `add --playlist-id ID --video-id ID [--position N]` Adds a video to a playlist. Appends by default; --position sets an explicit 0-based index. Both commands require OAuth write access (see companion scope change). JSON output is supported via -j/--json. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Andrew Beresford <andrew@aviancarrier.co.uk>
91944fd to
4344f57
Compare
|
Landed in d2f49ac. The merged change includes subscription management, playlist mutations, least-privilege OAuth, offline dry runs, destructive confirmations, generated command references, and the new end-to-end YouTube guide. Exact-head CI passed on Linux, Windows, macOS CGO, worker, and Docker. Thanks @beezly for the contribution and live proof. |
Summary
Adds authenticated YouTube subscription and playlist management while keeping normal YouTube reads on
youtube.readonly.Commands
youtube subscriptions list [--all]youtube subscriptions subscribe --channel-id IDyoutube subscriptions unsubscribe (--id ID | --channel-id ID)youtube playlists create --title TITLE [--description DESC] [--privacy private|unlisted|public]youtube playlists add --playlist-id ID --video-id ID [--position N]youtube playlists remove (--item-id ID | --playlist-id ID --video-id ID)youtube playlists delete PLAYLIST_IDOAuth and safety
youtube.force-sslservice; existing read commands remain least-privilege.--dry-run.--force.[], notnull.Verification
make ciafter rebasing onto currentmainclawdbot@gmail.com:The dedicated test account had no YouTube channel, so the E2E initialized its
Clawd Lobsterchannel once before mutation testing.Credit
Reworks the original contribution while preserving @beezly's commits and co-author credit. Thanks, @beezly.