Frequently asked questions for ytmusicapi. Contributions are welcome, please submit a PR.



How do I add a song, album, artist or playlist to my library?

  • songs: edit_song_library_status . Liking a song using rate_song does not add it to your library, only to your liked songs playlist.
  • albums, playlists: rate_playlist
  • artists: subscribe_artists . This will add the artist to your Subscriptions tab. The Artists tab is determined by the songs/albums you have added to your library.

How can I get the radio playlist for a song, video, playlist or album?

  • songs, videos: RDAMVM + videoId
  • playlists, albums: RDAMPL + playlistId

How can I get the shuffle playlist for a playlist or album?

Use get_watch_playlist_shuffle with the playlistId or audioPlaylistId (albums).

How can I get all my public playlists in a single request?

Call get_user_playlists with your own channelId.

Can I download songs?

You can use youtube-dl for this purpose.

YouTube Music API Internals

Is there a difference between songs and videos?

Yes. Videos are regular videos from YouTube, which can be uploaded by any user. Songs are actual songs uploaded by artists.

You can also add songs to your library, while you can’t add videos.

Is there a rate limit?

There most certainly is, although you shouldn’t run into it during normal usage. See related issues:

What is a browseId?

A browseId is an internal, globally unique identifier used by YouTube Music for browsable content.

Which videoTypes exist and what do they mean?

videoType is prefixed with MUSIC_VIDEO_TYPE_, i.e. MUSIC_VIDEO_TYPE_OMV. Currently the following variants of videoType are known:

  • OMV: Original Music Video - uploaded by original artist with actual video content
  • UGC: User Generated Content - uploaded by regular YouTube user
  • ATV: High quality song uploaded by original artist with cover image
  • OFFICIAL_SOURCE_MUSIC: Official video content, but not for a single track

Why is ytmusicapi returning more results than requested with the limit parameter?

YouTube Music always returns increments of a specific pagination value, usually between 20 and 100 items at a time. This is the case if a ytmusicapi method supports the limit parameter. The default value of the limit parameter indicates the server-side pagination increment. ytmusicapi will keep fetching continuations from the server until it has reached at least the limit parameter, and return all of these results.