Media & StreamingDocumentedScanned

ytmusic

YouTube Music library, playlists.

Share:

Installation

npx clawhub@latest install ytmusic

View the full skill documentation and source below.

Documentation

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

  • 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 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.

  • 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