YouTube Music

Manage YouTube Music library, playlists, and discovery via ytmusicapi.

Audits

Pass

Install

openclaw skills install ytmusic

YTMusic Librarian

This skill uses the ytmusicapi Python library to interact with YouTube Music.

Prerequisites

  • Python 3.x
  • ytmusicapi package: pip install ytmusicapi
  • Authentication file (oauth.json or browser.json) in the skill folder.

Setup Instructions

  1. Install the library:

    pip install ytmusicapi
    
  2. Generate Authentication (The "cURL Handshake"):

    • Open Microsoft Edge and visit music.youtube.com (ensure you are logged in).
    • Press F12 to open DevTools, go to the Network tab.
    • Click your Profile Icon -> Library on the page.
    • Look for a request named browse in the network list.
    • Right-click the browse request -> Copy -> Copy as cURL (bash).
    • Paste that cURL command into a file named headers.txt in 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.json is located in the skill folder.
  3. 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