youtubemusicapi: Fork from sigma67's unofficial API for YouTube Music
#####################################################################
youtubemusicapi is a Python 3 library to send requests to the YouTube Music API.
It emulates YouTube Music web client requests using the user's cookie data for authentication.
It improves on the authentication mechanism and allows users who implement their choice of auth flow (OAuth 2.0 PKCE
recommended for web based applications) to pass the auth token.
It decouples the library from using OAuth 2.0 for TV and Limited Input Devices.
This package is being used in production. I don't plan on updating the library with more features than
I need. Contributions are open!
.. features
Features
| Authentication and authorization:
- inject token information from external client
| Browsing:
- 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
| Exploring music:
- get moods and genres playlists
- get latest charts (globally and per country)
| Library management:
- get library contents: playlists, songs, artists, albums and subscriptions
- add/remove library content: rate songs, albums and playlists, subscribe/unsubscribe artists
- get and modify play history
| Playlists:
- create and delete playlists
- modify playlists: edit metadata, add/move/remove tracks
- get playlist contents
- get playlist suggestions
| Uploads:
- upload songs and remove them again
- list uploaded songs, artists and albums
| Localization:
- all regions are supported (see
locations FAQ <https://ytmusicapi.readthedocs.io/en/stable/faq.html#which-values-can-i-use-for-locations>
__ - 16 languages are supported (see
languages FAQ <https://ytmusicapi.readthedocs.io/en/stable/faq.html#which-values-can-i-use-for-languages>
__
If you find something missing or broken,
check the FAQ <https://ytmusicapi.readthedocs.io/en/stable/faq.html>
__ or
feel free to create an issue <https://github.com/sigma67/ytmusicapi/issues/new/choose>
__.
Usage
.. code-block:: python
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 <https://github.com/sigma67/ytmusicapi/blob/master/tests/test.py>
_ are also a great source of usage examples.
.. end-features
Requirements
Setup and Usage
See the Documentation <https://ytmusicapi.readthedocs.io/en/latest/usage.html>
_ for detailed instructions
Contributing
Pull requests are welcome. There are still some features that are not yet implemented.
Please, refer to CONTRIBUTING.rst <https://github.com/sigma67/ytmusicapi/blob/master/CONTRIBUTING.rst>
_ for guidance.