ytmusicapi: Unofficial API for YouTube Music
The purpose of this library is to automate interactions with YouTube Music, such as retrieving your library content, managing playlists and uploading songs. To achieve this, it emulates web requests that would occur if you performed the same actions in your web browser.
This project is not supported nor endorsed by Google
Features
search (including all filters) and suggestions
get artist information and releases (songs, videos, albums, singles, related artists)
get user information (videos, playlists)
get albums
get song metadata
get watch playlists (next songs when you press play/radio/shuffle in YouTube Music)
get song lyrics
get moods and genres playlists
get latest charts (globally and per country)
get library contents: playlists, songs, artists, albums and subscriptions, podcasts, channels
add/remove library content: rate songs, albums and playlists, subscribe/unsubscribe artists
get and modify play history
create and delete playlists
modify playlists: edit metadata, add/move/remove tracks
get playlist contents
get playlist suggestions
get podcasts
get episodes
get channels
get episodes playlists
upload songs and remove them again
list uploaded songs, artists and albums
all regions are supported (see locations FAQ
16 languages are supported (see languages FAQ
If you find something missing or broken, check the FAQ or feel free to create an issue.
Requirements
Python 3.8 or higher - https://www.python.org
Setup
See the Documentation for detailed instructions
Usage
from ytmusicapi import YTMusic
yt = YTMusic('oauth.json')
playlistId = yt.create_playlist('test', 'test description')
search_results = yt.search('Oasis Wonderwall')
yt.add_playlist_items(playlistId, [search_results[0]['videoId']])
The tests are also a great source of usage examples.
To get started, read the setup instructions.
For a complete documentation of available functions, see the Reference.
Contents
- Setup
- Usage
- Reference
YTMusic
- Setup
- Search
- Browsing
YTMusic.get_home()
YTMusic.get_artist()
YTMusic.get_artist_albums()
YTMusic.get_album()
YTMusic.get_album_browse_id()
YTMusic.get_user()
YTMusic.get_user_playlists()
YTMusic.get_user_videos()
YTMusic.get_song()
YTMusic.get_song_related()
YTMusic.get_lyrics()
YTMusic.get_tasteprofile()
YTMusic.set_tasteprofile()
- Explore
- Watch
- Library
YTMusic.get_library_playlists()
YTMusic.get_library_songs()
YTMusic.get_library_albums()
YTMusic.get_library_artists()
YTMusic.get_library_subscriptions()
YTMusic.get_library_podcasts()
YTMusic.get_library_channels()
YTMusic.get_liked_songs()
YTMusic.get_saved_episodes()
YTMusic.get_history()
YTMusic.add_history_item()
YTMusic.remove_history_items()
YTMusic.rate_song()
YTMusic.edit_song_library_status()
YTMusic.rate_playlist()
YTMusic.subscribe_artists()
YTMusic.unsubscribe_artists()
YTMusic.get_account_info()
- Playlists
- Podcasts
- Uploads
- FAQ