Skip to main content

Fork of the unofficial API for YouTube Music

Project description

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

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:

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

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.

Requirements

Setup and Usage

See the Documentation for detailed instructions

Contributing

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

youtubemusicapifork-0.0.4.tar.gz (72.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

youtubemusicapifork-0.0.4-py3-none-any.whl (70.5 kB view details)

Uploaded Python 3

File details

Details for the file youtubemusicapifork-0.0.4.tar.gz.

File metadata

  • Download URL: youtubemusicapifork-0.0.4.tar.gz
  • Upload date:
  • Size: 72.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for youtubemusicapifork-0.0.4.tar.gz
Algorithm Hash digest
SHA256 96fe1d474a1cb355be9de7e0af81e46a1c4b6f3817abd8c8b642af43ab6e93cf
MD5 3e2f025ea0b63d24fc655c35b53aab3d
BLAKE2b-256 b9e10dca72084e0800556543bcfddd96f94f2833b6826bbdce6be135483ba16b

See more details on using hashes here.

File details

Details for the file youtubemusicapifork-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for youtubemusicapifork-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9d9fe08d57de186c80d192caebcef833a86467e207ed6f4301cc0d51e63b3cf5
MD5 054958a16869f8aed82203f8cbd627d8
BLAKE2b-256 5e42ddaa5de2c37963191398d15e4b57f47329dc2cac67ff1e5aac31e58c0b3d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page