This api is based on: https://github.com/emresenyuva/youtube-music-api
Run npm install
and then npm start
Visit http://localhost:4000/ for documentation and examples.
Prefix the endpoints below with the domain where you publish the API. If you run this api locally, the domain will by default be http://localhost:4000/
This api is purely for educational and personal projects and is not meant to be used commercially. If you want to create a commercial application you'll have to find another way.
The author of this api does not take responsibility for how you use it.
This part of the API exposes the YouTube music API. Below is a list of endpoints you can use, with a non-exhaustive list of properties.
All responses returns a limit of 20 results. To get the next page you simply add the response.next string from the last search as a '?next=' query.
'/api/yt/songs/nothing%20else%20matters?next=' + response.next
This response will result in the next 20 items, and a new response.next string that you can use to get the next page.
contains any (songs, albums, singles, artists, playlists, videos)
{
"content": [
{
"type": "song",
"videoId": String,
"name": String,
"artist": {
"name": String,
"browseId": String
},
"album": {
"name": String,
"browseId": String
},
"duration": Number,
"thumbnails": [
{
"url": String,
"width": Number,
"height": Number
}
],
"params": "wAEB"
}
]
}
contains suggestions (for autocomplete)
[
String,
String
]
contains songs
{
"content": [
{
"type": "song",
"videoId": String,
"name": String,
"artist": {
"name": String,
"browseId": String
},
"album": {
"name": String,
"browseId": String
},
"duration": Number,
"thumbnails": [
{
"url": String,
"width": Number,
"height": Number
}
],
"params": "wAEB"
}
],
"next": String
}
get one song by id
{
"type": "song",
"videoId": String,
"name": String,
"artist": {
"name": String,
"browseId": String
},
"album": {
"name": String,
"browseId": String
},
"duration": Number,
"thumbnails": [
{
"url": String,
"width": Number,
"height": Number
}
],
"params": "wAEB"
}
contains offical artists
{
"content": [
{
"type": "artist",
"browseId": String,
"name": String,
"thumbnails": [
{
"url": String,
"width": Number,
"height": Number
}
]
}
],
"next": String
}
get one artist by id
{
"name": String,
"description": String,
"views": Number,
"products": {
"songs": {
"content": [],
"browseId": String,
"params": String
},
"albums": {
"content": [],
"browseId": String,
"params": String
},
"singles": {
"content": [],
"browseId": String,
"params": String
},
"videos": {
"content": [],
"browseId": String,
"params": String
}
},
"thumbnails": [
{
"url": String,
"width": Number,
"height": Number
}
]
}
contains offical albums
{
"content": [
{
"type": "album",
"browseId": String,
"name": String,
"artist": String,
"year": String,
"thumbnails": [
{
"url": String,
"width": Number,
"height": Number
}
]
}
],
"next": String
}
get one album by id
{
"title": String,
"description": String,
"trackCount": Number,
"year": String
"duration": Number,
"artist": [
{
"name": String,
"browseId": String,
"thumbnails": [
{
"url": String,
"width": Number,
"height": Number
}
]
}
],
"tracks": [
{
"name": String,
"videoId": String,
"duration": Number
}
],
"thumbnails": [
{
"url": String,
"width": Number,
"height": Number
}
]
}
contains youtube videos
{
"content": [
{
"type": String,
"videoId": String,
"name": String,
"author": String,
"views": String,
"duration": Number,
"thumbnails": {
"url": String,
"width": Number,
"height": Number
},
"params": String
}
],
"next": String
}
get one video by id
{
"type": String,
"videoId": String,
"name": String,
"author": String,
"views": String,
"duration": Number,
"thumbnails": {
"url": String,
"width": Number,
"height": Number
},
"params": String
}
contains youtube playlists
{
"content": [
{
"type": String,
"browseId": String,
"title": String,
"author": String,
"trackCount": Number,
"thumbnails": [
{
"url": String,
"width": Number,
"height": Number
}
]
}
],
"next": String
}
get one playlist by id
{
"title": String,
"owner": String,
"trackCount": Number,
"year": String,
"content": [
{
"videoId": String,
"name": String,
"author": {
"name": String,
"browseId": String
},
"duration": Number,
"thumbnails": {
"url": String,
"width": Number,
"height": Number
}
}
],
"thumbnails": [
{
"url": String,
"width": Number,
"height": Number
}
]
}