A work-in-progress API that emulates web requests from the YouTube Music web client.
Currently you need to extract your authentication data from your web browser and provide it through a file for it to work.
Browsing:
- search (including all filters)
- get artist information and releases (songs, videos, albums, singles)
- get user information (videos, playlists)
- get albums
- get song metadata
- get watch playlists (playlist that appears when you press play in YouTube Music)
Library management:
- get library contents: playlists, songs, artists, albums and subscriptions
- add/remove library content: rate songs, albums and playlists, subscribe/unsubscribe artists
Playlists:
- create and delete playlists
- modify playlists: edit metadata, add/move/remove tracks
- get playlist contents
Uploads:
- Upload songs and remove them again
- List uploaded songs, artists and albums
from ytmusicapi import YTMusic
ytmusic = YTMusic('headers_auth.json')
playlistId = ytmusic.create_playlist("test", "test description")
search_results = ytmusic.search("Oasis Wonderwall")
ytmusic.add_playlist_items(playlistId, [search_results[0]['videoId']])
The tests are also a great source of usage examples.
- Python 3.5 or higher - https://www.python.org
See the Documentation for detailed instructions
Pull requests are welcome. There are still some features that are not yet implemented. Please, refer to CONTRIBUTING.rst for guidance.