Skip to content

sigma67/ytmusicapi

Folders and files

NameName
Last commit message
Last commit date
Jan 31, 2025
Feb 3, 2025
Feb 2, 2025
Mar 24, 2025
Jan 17, 2025
Jan 31, 2025
Jan 17, 2025
Dec 31, 2023
Jan 3, 2024
Oct 22, 2024
Jan 31, 2025
Jan 17, 2025

Repository files navigation

ytmusicapi: Unofficial API for YouTube Music

PyPI Downloads Ask questions at https://gitter.im/sigma67/ytmusicapi Code coverage Latest release Commits since latest release

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

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:

If you find something missing or broken, check the FAQ or feel free to create an issue.

Requirements

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.

Contributing

Pull requests are welcome. There are still some features that are not yet implemented. Please, refer to CONTRIBUTING.rst for guidance.