Skip to content

Research project: Use InnerTube REST API to write a YouTube Music iOS client

License

Notifications You must be signed in to change notification settings

leptos-null/LeptosMusic

Repository files navigation

LeptosMusic

LMusic is an iOS client for YouTube Music. It uses Google's InnerTube backend service, posing as YouTube Music. Currently, the protobuf messages are not included with this project. More information on this research is outlined in my Writing an iOS YouTube Music client artcle.

The only information I could find about InnerTube was this article by FastCompany.

The main YouTube app uses InnerTube, as do other YouTube clients (e.g. YouTube Kids). Every protobuf message requires a field usually under the key path "context.client.clientName", which is an enum, to reflect the client.

This project was written for research purposes. InnerTube was a previously undocumented service.

Additional Components

DisPlayers-Audio-Visualizers is used for an audio visualization view at the top of the app.

protobuf was downloaded at the 3.5.1 Release Tag to best match the reverse engineered client.

LMPrivateGoogleAccessToken

This macro needs to be defined in LMPrivateGoogleAccessToken.h as directed in LMAccessTokenManager.m.

To find the value, open Keychain Access.app on macOS. Enter "com.apple.account.Google.oath-refresh-token" in the search bar. You may have multiple Google Accounts. Select each cell, and a preview will be provided at the top of the app. Right click the cell of the account you'd like to use. Select "Copy Password to Clipboard".

Note: This is a workaround for a non-priority feature: logging into a Google Account in the app.

About

Research project: Use InnerTube REST API to write a YouTube Music iOS client

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published