From ade2ee9b8683ded76521e48f2f8553f46e32f41e Mon Sep 17 00:00:00 2001 From: Eclypsed Date: Mon, 26 Feb 2024 00:56:59 -0500 Subject: [PATCH] Need to figure out how to get the data for ytmusic playlists --- src/lib/server/users.db | Bin 24576 -> 24576 bytes src/lib/service-managers/youtube-music.ts | 33 +++++++++++++++------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/lib/server/users.db b/src/lib/server/users.db index 87b6dc2f9a40004c67c8a0b7a32c17e8c2ddc904..e00c401b622ae43253ab5d32c86da7e92e0f6607 100644 GIT binary patch delta 738 zcma))OKzJ`07YZTQAbVEaVw=lmO3fT;}4mE4K`q~gMrwYv=4Y-FrOF42 zlqMU6q#{RNMVbvpHj{vk^LqF7zVpg)K3sk~1S}g0EE(b~ z0T`TSg%B5Lp2s1F2%cn+02ufZLR-|E+Cz9&SFwMG)fFn$06WK=J~zR|rKRz#q(zn> z(q@zI7B>-ge}_TeM^$APE0ph}EhL3c5Qw4l*=ze{hPIL81b{Rysxe#;b|Si=Ga9W| z*2*f&*1qz#rR?Tr%TYmw>!z?+_hlmo0bMx?6Y~S>YCf6Zv!P@pLuXTkl-9samN?li zq|z};U7MS8bfvq2vrU_IWTHS%dD)Cv|5^#DochK0fHm2k64Mq5>?Cpvb()4adrk6 zzA@rKx^Uv6-WRH(C5l7QnVB~VJ{Ht6umH_^oUMCJZC{o}213uwhn8y<$#B%573WN} z{oCl=OVVsPy>$crwq&=OlgVC@2MMn3$!L2Wmo0WqaDW#m07$9}SnB@q{jcNROXmLv DG|uJ( delta 195 zcmZoTz}Rqrae_1>^F$eEM&^wP7V_z)$p%Jgh6bj(X=bJ=x+W$D$-0T=$%eXVsRl;L z$w|q{7RknbnaLUXIf=z8Mu{qh1}e!uNx5k*$)!#yA$e(zA;E4gUWt}^VR_{xc^*dY zB`GDYnf_%FVeVl@1sN`mDdxVJCTW}h%irZ!A;z*z1}p+h3<8@44IcAPoFLA|#Q+3w FE&#CyI$Zz& diff --git a/src/lib/service-managers/youtube-music.ts b/src/lib/service-managers/youtube-music.ts index e306681..5ab309e 100644 --- a/src/lib/service-managers/youtube-music.ts +++ b/src/lib/service-managers/youtube-music.ts @@ -17,13 +17,9 @@ declare namespace InnerTube { selected: boolean content: { sectionListRenderer: { - contents: - | { - musicCarouselShelfRenderer: musicCarouselShelfRenderer - }[] - | { - musicDescriptionShelfRenderer: musicDescriptionShelfRenderer - }[] + contents: { + musicCarouselShelfRenderer: musicCarouselShelfRenderer + }[] continuations: [object] trackingParams: string header: { @@ -77,7 +73,6 @@ declare namespace InnerTube { } contents: { musicTwoRowItemRenderer?: musicTwoRowItemRenderer - musicResponsiveListItemRenderer?: unknown }[] trackingParams: string itemSize: string @@ -259,8 +254,26 @@ export class YouTubeMusic { console.log(response.status) const data: InnerTube.BrowseResponse = await response.json() const results = data.contents.singleColumnBrowseResultsRenderer.tabs[0].tabRenderer.content.sectionListRenderer.contents - const home: any[] = [] - home.push.apply(home, Parsers.parseMixedContent(results)) + const home: { id: string; name: string }[] = [] + for (const result of results) { + const homeSection = result.musicCarouselShelfRenderer.contents + for (const item of homeSection) { + if (item.musicTwoRowItemRenderer?.navigationEndpoint) { + let id: string + const navigationEndpoint = item.musicTwoRowItemRenderer.navigationEndpoint + if ('browseEndpoint' in navigationEndpoint) { + id = navigationEndpoint.browseEndpoint.browseId + } else if ('watchEndpoint' in navigationEndpoint) { + id = navigationEndpoint.watchEndpoint.videoId + } else { + continue + } + home.push({ id, name: item.musicTwoRowItemRenderer.title.runs[0].text }) + } + } + } + + console.log(JSON.stringify(home)) // const sectionList = data.contents.singleColumnBrowseResultsRenderer.tabs[0].tabRenderer.content.sectionListRenderer // if ('continuations' in sectionList) {