ytmusicapiJS is a TypeScript implementation of the Python 3 library ytmusicapi for NodeJS
It emulates YouTube Music web client requests using the user's cookie data for authentication.
This library is intended to carry the same functionality as the library it is inspired by. As such, unless the need becomes great enough for a specific feature in this library, I recommend all API specific changes be directed to ytmusicapi instead.
To run authenticated requests you need to set up you need to copy your request headers from a POST request in your browser. To do so, follow these steps:
Open a new tab
Open the developer tools (Ctrl-Shift-I) and select the “Network” tab
Find an authenticated POST request. The simplest way is to filter by /browse using the search bar of the developer tools. If you don’t see the request, try scrolling down a bit or clicking on the library button in the top bar.
Either point to this file when instantiating YTMusic, or load the file with JSON.parse ahead of time and pass in the object.
constytm=newYTMusic({auth: 'path/to/headers.json'})constytm=newYTMusic({auth: JSON.parse('path/to/headers.json')}// Or even a raw string object is acceptedconstytm=newYTMusic({auth: fs.readFileSync('path/to/file',{encoding: 'utf-8'})}
The library is intended to keep features within the same scope of the original Python 3 library. This may/may not change at my discretion.
Pull requests are welcome, esp. with regards to resolving any API differences that occured through mistakes or otherwise. However, note that I would
like to remain with similar API to the original library, so it is unlikely new API features will be approved (unless strictly relevant to the JS/TS version).
The source code is structured almost identically to the Python 3 Library. I've also mocked some other dependencies, this is to maintain readability and ease of changes between the two APIs.
Acknowledgements
A majority of this codebase is possible thanks to the work done by sigma67
codyduong/ytmusicapiJS
ytmusicapiJS: Unofficial API for YouTube Music
ytmusicapiJS is a TypeScript implementation of the Python 3 library
ytmusicapi
for NodeJSIt emulates YouTube Music web client requests using the user's cookie data for authentication.
This library is intended to carry the same functionality as the library it is inspired by. As such, unless the need becomes great enough for a specific feature in this library, I recommend all API specific changes be directed to
ytmusicapi
instead.Features
See API here https://codyduong.github.io/ytmusicapiJS/
Setup and Usage
npm install @codyduong/ytmusicapi
yarn add @codyduong/ytmusicapi
For authenticated requests
To run authenticated requests you need to set up you need to copy your request headers from a POST request in your browser. To do so, follow these steps:
A sample headers.json is provided below:
Either point to this file when instantiating YTMusic, or load the file with JSON.parse ahead of time and pass in the object.
Quick Usage
Quick Usage Snippet
results
Documentation
For more demos, look in
tests/index.test.ts
Contributing
The library is intended to keep features within the same scope of the original Python 3 library. This may/may not change at my discretion.
Pull requests are welcome, esp. with regards to resolving any API differences that occured through mistakes or otherwise. However, note that I would like to remain with similar API to the original library, so it is unlikely new API features will be approved (unless strictly relevant to the JS/TS version).
The source code is structured almost identically to the Python 3 Library. I've also mocked some other dependencies, this is to maintain readability and ease of changes between the two APIs.
Acknowledgements
A majority of this codebase is possible thanks to the work done by sigma67