YouTube Music
Manage YouTube Music library, playlists, and discovery via ytmusicapi.
gentrycopsy
@gentrycopsy
What This Skill Does
Programmatic interface for managing YouTube Music libraries, playlists, and discovery using the ytmusicapi library. Supports listing, adding, and removing songs and albums, creating and editing playlists, and fetching lyrics and related content.
Replaces manual YouTube Music web interactions by automating library and playlist management through a Python API.
When to Use It
- List all songs in your YouTube Music library
- Create a new playlist and add tracks to it
- Remove specific songs from a playlist
- Fetch lyrics for a song by its browse ID
- Get related tracks for a given video ID
- Rate a song as liked or disliked
Install
$ openclaw skills install @gentrycopsy/ytmusicYTMusic Librarian
This skill uses the ytmusicapi Python library to interact with YouTube Music.
Prerequisites
- Python 3.x
ytmusicapipackage:pip install ytmusicapi- Authentication file (
oauth.jsonorbrowser.json) in the skill folder.
Setup Instructions
-
Install the library:
pip install ytmusicapi -
Generate Authentication (The "cURL Handshake"):
- Open Microsoft Edge and visit music.youtube.com (ensure you are logged in).
- Press
F12to open DevTools, go to the Network tab. - Click your Profile Icon -> Library on the page.
- Look for a request named
browsein the network list. - Right-click the
browserequest -> Copy -> Copy as cURL (bash). - Paste that cURL command into a file named
headers.txtin the skill folder. - Run the following Python snippet to generate
browser.json:from ytmusicapi.auth.browser import setup_browser with open('headers.txt', 'r') as f: setup_browser('browser.json', f.read()) - Ensure
browser.jsonis located in the skill folder.
-
Verify:
python -c "from ytmusicapi import YTMusic; yt = YTMusic('browser.json'); print(yt.get_library_songs(limit=1))"
Workflows
Library Management
- List songs/albums:
yt.get_library_songs(),yt.get_library_albums() - Add/Remove:
yt.rate_song(videoId, 'LIKE'),yt.edit_song_library_status(feedbackToken)
Playlist Management
- Create:
yt.create_playlist(title, description) - Add Tracks:
yt.add_playlist_items(playlistId, [videoIds]) - Remove Tracks:
yt.remove_playlist_items(playlistId, [videoIds])
Metadata & Discovery
- Get Lyrics:
yt.get_lyrics(browseId) - Get Related:
yt.get_watch_playlist(videoId)->related
Top skills in this category
Nano Banana Pro
@steipeteGenerate/edit images with Nano Banana Pro (Gemini 3 Pro Image). Use for image create/modify requests incl. edits. Supports text-to-image + image-to-image; 1K/2K/4K; use --input-image.
AdMapix
@fly0pantsAdMapix raw data layer for ad creatives, apps, rankings, downloads/revenue, and market metadata. Returns structured JSON from the AdMapix API; the calling ag...
YouTube Watcher
@michaelgatharaFetch and read transcripts from YouTube videos. Use when you need to summarize a video, answer questions about its content, or extract information from it.
SuperDesign
@mpociotExpert frontend design guidelines for creating beautiful, modern UIs. Use when building landing pages, dashboards, or any user interface.
Video Frames
@steipeteExtract frames or short clips from videos using ffmpeg.