From 3a24a85e60e1c7190051bcc335e9a06b87895c0d Mon Sep 17 00:00:00 2001 From: Rhodri <24809571+rhld16@users.noreply.github.com> Date: Sun, 5 Dec 2021 00:06:10 +0000 Subject: [PATCH] feat(plugin/music): add youtube music as a provider (#696) --- .../plugin_music_recent_youtube_cookie_1.png | Bin 0 -> 59132 bytes .../plugin_music_recent_youtube_cookie_2.png | Bin 0 -> 58593 bytes .../app/mocks/api/axios/post/youtubemusic.mjs | 59 +++++++++++ source/plugins/music/README.md | 35 +++++++ source/plugins/music/index.mjs | 99 ++++++++++++++++++ source/plugins/music/metadata.yml | 2 + source/plugins/music/tests.yml | 16 +++ 7 files changed, 211 insertions(+) create mode 100644 .github/readme/imgs/plugin_music_recent_youtube_cookie_1.png create mode 100644 .github/readme/imgs/plugin_music_recent_youtube_cookie_2.png create mode 100644 source/app/mocks/api/axios/post/youtubemusic.mjs diff --git a/.github/readme/imgs/plugin_music_recent_youtube_cookie_1.png b/.github/readme/imgs/plugin_music_recent_youtube_cookie_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3e34e42a293617de27425195924ee638d30f8c5d GIT binary patch literal 59132 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 mocking yt music api result > ${url}`) + const artist = faker.random.word() + const track = faker.random.words(5) + const artwork = faker.image.imageUrl() + return ({ + contents:{ + singleColumnBrowseResultsRenderer:{ + tabs:[{ + tabRenderer:{ + content:{ + sectionListRenderer:{ + contents:[{ + contents:[{ + musicResponsiveListItemRenderer:{ + thumbnail:{ + musicThumbnailRenderer:{ + thumbnail:{ + thumbnails:[{ + url:artwork, + }] + }, + } + }, + flexColumns:[{ + musicResponsiveListItemFlexColumnRenderer:{ + text:{ + runs:[{ + text:track, + }] + }, + } + }, + { + musicResponsiveListItemFlexColumnRenderer:{ + text:{ + runs:[{ + text:artist, + }] + }, + } + }], + } + }], + }], + }, + }, + }, + }], + }, + }, + }) + } + } +} \ No newline at end of file diff --git a/source/plugins/music/README.md b/source/plugins/music/README.md index 6e148412..a1c34522 100644 --- a/source/plugins/music/README.md +++ b/source/plugins/music/README.md @@ -67,6 +67,22 @@ This mode is not supported for now. +
+YouTube Music + +Extract the *playlist* URL of the playlist you want to share. + +To do so, Open YouTube Music and select the playlist you want to share. + +Extract the source link from copying it from the address bar: +``` +https://music.youtube.com/playlist?list=******** +``` + +And use this value in `plugin_music_playlist` option. + +
+ #### ℹ️ Examples workflows [➡️ Available options for this plugin](metadata.yml) @@ -170,6 +186,25 @@ Register your API key to finish setup. +
+YouTube Music + +Extract your YouTube Music cookies. + +To do so, open [YouTube Music](https://music.youtube.com) (whilst logged in) on any modern browser + +Open the developer tools (Ctrl-Shift-I) and select the “Network” tab + +![Open developer tools](/.github/readme/imgs/plugin_music_recent_youtube_cookie_1.png) + +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. + +Click on the Name of any matching request. In the “Headers” tab, scroll to the “Cookie” and copy this by right-clicking on it and selecting “Copy value”. + +![Copy cookie value](/.github/readme/imgs/plugin_music_recent_youtube_cookie_2.png) + +
+ #### ℹ️ Examples workflows [➡️ Available options for this plugin](metadata.yml) diff --git a/source/plugins/music/index.mjs b/source/plugins/music/index.mjs index c14afa13..17fd26dc 100644 --- a/source/plugins/music/index.mjs +++ b/source/plugins/music/index.mjs @@ -1,3 +1,6 @@ +//Imports +import crypto from "crypto" + //Supported providers const providers = { apple:{ @@ -12,6 +15,10 @@ const providers = { name:"Last.fm", embed:/^\b$/, }, + youtube:{ + name:"YouTube Music", + embed:/^https:..music.youtube.com.playlist/, + }, } //Supported modes const modes = { @@ -84,6 +91,7 @@ export default async function({login, imports, data, q, account}, {enabled = fal console.debug(`metrics/compute/${login}/plugins > music > started ${await browser.version()}`) const page = await browser.newPage() console.debug(`metrics/compute/${login}/plugins > music > loading page`) + await page.setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36 Edg/96.0.1054.34") await page.goto(playlist) const frame = page.mainFrame() //Handle provider @@ -117,6 +125,21 @@ export default async function({login, imports, data, q, account}, {enabled = fal ] break } + //YouTube Music + case "youtube": { + while (await frame.evaluate(() => document.querySelector("yt-next-continuation")?.children.length ?? 0)) + await frame.evaluate(() => window.scrollBy(0, window.innerHeight)) + //Parse tracklist + tracks = [ + ...await frame.evaluate(() => [...document.querySelectorAll("ytmusic-playlist-shelf-renderer ytmusic-responsive-list-item-renderer")].map(item => ({ + name:item.querySelector("yt-formatted-string.title > a")?.innerText ?? "", + artist:item.querySelector(".secondary-flex-columns > yt-formatted-string > a")?.innerText ?? "", + artwork:item.querySelector("img").src, + }) + )), + ] + break + } //Unsupported default: throw {error:{message:`Unsupported mode "${mode}" for provider "${provider}"`}, ...raw} @@ -224,6 +247,70 @@ export default async function({login, imports, data, q, account}, {enabled = fal } break } + case "youtube": { + //Prepare credentials + let date = new Date().getTime() + let [, cookie] = token.split("; ").find(part => part.startsWith("SAPISID=")).split("=") + let sha1 = str => crypto.createHash("sha1").update(str).digest("hex") + let SAPISIDHASH = `SAPISIDHASH ${date}_${sha1(`${date} ${cookie} https://music.youtube.com`)}` + //API call and parse tracklist + try { + //Request access token + console.debug(`metrics/compute/${login}/plugins > music > requesting access token with youtube refresh token`) + const res = await imports.axios.post("https://music.youtube.com/youtubei/v1/browse?alt=json&key=AIzaSyC9XL3ZjWddXya6X74dJoCTL-WEYFDNX30", + { + browseEndpointContextSupportedConfigs:{ + browseEndpointContextMusicConfig:{ + pageType:"MUSIC_PAGE_TYPE_PLAYLIST", + } + }, + context:{ + client:{ + clientName:"WEB_REMIX", + clientVersion:"1.20211129.00.01", + gl:"US", + hl:"en", + }, + }, + browseId:"FEmusic_history" + }, + { + headers:{ + Authorization:SAPISIDHASH, + Cookie:token, + "x-origin":"https://music.youtube.com", + }, + }) + //Retrieve tracks + console.debug(`metrics/compute/${login}/plugins > music > querying youtube api`) + tracks = [] + let parsedHistory = get_all_with_key(res.data, "musicResponsiveListItemRenderer") + + for (let i = 0; i < parsedHistory.length; i++) { + let track = parsedHistory[i] + tracks.push({ + name:track.flexColumns[0].musicResponsiveListItemFlexColumnRenderer.text.runs[0].text, + artist:track.flexColumns[1].musicResponsiveListItemFlexColumnRenderer.text.runs[0].text, + artwork:track.thumbnail.musicThumbnailRenderer.thumbnail.thumbnails[0].url, + }) + //Early break + if (tracks.length >= limit) + break + } + } + //Handle errors + catch (error) { + if (error.isAxiosError) { + const status = error.response?.status + const description = error.response.data?.error_description ?? null + const message = `API returned ${status}${description ? ` (${description})` : ""}` + error = error.response?.data ?? null + throw {error:{message, instance:error}, ...raw} + } + throw error + } + break + } //Unsupported default: throw {error:{message:`Unsupported mode "${mode}" for provider "${provider}"`}, ...raw} @@ -428,3 +515,15 @@ export default async function({login, imports, data, q, account}, {enabled = fal throw {error:{message:"An error occured", instance:error}} } } + +//get all objects that have the given key name with recursivity +function get_all_with_key(obj, key) { + const result = [] + if (obj instanceof Object) { + if (key in obj) + result.push(obj[key]) + for (const i in obj) + result.push(...get_all_with_key(obj[i], key)) + } + return result +} \ No newline at end of file diff --git a/source/plugins/music/metadata.yml b/source/plugins/music/metadata.yml index 6b7dc4b3..2bad8010 100644 --- a/source/plugins/music/metadata.yml +++ b/source/plugins/music/metadata.yml @@ -23,12 +23,14 @@ inputs: - apple # Apple Music - spotify # Spotify - lastfm # Last.fm + - youtube # YouTube # Music provider token # This may be required depending on music provider used and plugin mode # - "apple" : not required # - "spotify" : required for "recent" or "top" mode, format is "client_id, client_secret, refresh_token" # - "lastfm" : required, format is "api_key" + # - "youtube" : required for "recent" mode, format is "cookie" plugin_music_token: description: Music provider personal token type: token diff --git a/source/plugins/music/tests.yml b/source/plugins/music/tests.yml index 80dc68b2..7b954e85 100644 --- a/source/plugins/music/tests.yml +++ b/source/plugins/music/tests.yml @@ -12,6 +12,13 @@ plugin_music: yes plugin_music_playlist: https://open.spotify.com/embed/playlist/3nfA87oeJw4LFVcUDjRcqi +- name: Music plugin (playlist - yt music) + uses: lowlighter/metrics@latest + with: + token: NOT_NEEDED + plugin_music: yes + plugin_music_playlist: https://music.youtube.com/playlist?list=OLAK5uy_kU_uxp9TUOl9zVdw77xith8o9AknVwz9U + - name: Music plugin (recent - spotify) uses: lowlighter/metrics@latest with: @@ -30,6 +37,15 @@ plugin_music_provider: lastfm plugin_music_user: RJ +- name: Music plugin (recent - yt music) + uses: lowlighter/metrics@latest + with: + token: NOT_NEEDED + plugin_music_token: SAPISID=MOCKED_COOKIE; OTHER_PARAM=OTHER_VALUE; + plugin_music: yes + plugin_music_mode: recent + plugin_music_provider: youtube + - name: Music plugin (top - spotify - tracks) uses: lowlighter/metrics@latest with: