No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2025-09-20 14:26:01 -05:00
.github Bump actions/checkout from 4 to 5 (#801) 2025-08-18 17:14:16 +02:00
docs Update oauth.rst (#756) 2025-03-30 19:53:05 +02:00
tests get_playlist/get_episodes_playlist: fix metadata (#809) 2025-08-30 21:30:28 +02:00
ytmusicapi Patch for providing your own auth header 2025-09-20 14:26:01 -05:00
.gitignore Fix 720 (#726) 2025-01-17 20:17:04 +01:00
.pre-commit-config.yaml >=3.10 strict typing (#765) 2025-04-17 16:05:34 +02:00
.readthedocs.yml Fix 720 (#726) 2025-01-17 20:17:04 +01:00
CONTRIBUTING.rst add mypy 2023-12-31 20:13:45 +01:00
LICENSE update LICENSE year to 2024 2024-01-03 21:19:01 +01:00
pdm.lock >=3.10 strict typing (#765) 2025-04-17 16:05:34 +02:00
PR_SUMMARY.md feat: Add comprehensive iOS compatibility for all major function categories 2025-09-07 00:25:40 -04:00
pyproject.toml >=3.10 strict typing (#765) 2025-04-17 16:05:34 +02:00
README.rst Update README.rst 2025-04-27 09:53:40 +02:00

ytmusicapi: Unofficial API for YouTube Music
############################################

.. |pypi-downloads| image:: https://img.shields.io/pypi/dm/ytmusicapi?style=flat-square
    :alt: PyPI Downloads
    :target: https://pypi.org/project/ytmusicapi/

.. |gitter| image:: https://badges.gitter.im/sigma67/ytmusicapi.svg
   :alt: Ask questions at https://gitter.im/sigma67/ytmusicapi
   :target: https://gitter.im/sigma67/ytmusicapi

.. |code-coverage| image:: https://img.shields.io/codecov/c/github/sigma67/ytmusicapi?style=flat-square
    :alt: Code coverage
    :target: https://codecov.io/gh/sigma67/ytmusicapi

.. |latest-release| image:: https://img.shields.io/github/v/release/sigma67/ytmusicapi?style=flat-square
    :alt: Latest release
    :target: https://github.com/sigma67/ytmusicapi/releases/latest

.. |commits-since-latest| image:: https://img.shields.io/github/commits-since/sigma67/ytmusicapi/latest?style=flat-square
    :alt: Commits since latest release
    :target: https://github.com/sigma67/ytmusicapi/commits


|pypi-downloads| |gitter| |code-coverage| |latest-release| |commits-since-latest|

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

.. features

Features
--------

| **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, podcasts, channels
* 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

| **Podcasts**:

* get podcasts
* get episodes
* get channels
* get episodes playlists

| **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>`__.

Requirements
------------

- Python 3.10 or higher - https://www.python.org

Setup
-----

See the `Documentation <https://ytmusicapi.readthedocs.io/en/stable/usage.html>`_ for detailed instructions

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/>`_ are also a great source of usage examples.

.. end-features

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.