YouTube Music レアケース
YouTube Music のデータで何か遊んだりする時にぜひ考慮しておきたいレアケースまとめ
特定地域だけ Music Premium が必要なアルバム
日記:2022-03-16#6231162f90d79e000094d7e6
Aile to Yell - https://music.youtube.com/playlist?list=OLAK5uy_lXxOLO7A0n-BrtVdM28AE_ddvYuQRnI7U
日本では動画ID MOl5w-RVRd0 (Music Premium が必要) https://youtu.be/MOl5w-RVRd0
それ以外では ZdLUlQFn_oU (Music Premium 必要なし) https://youtu.be/ZdLUlQFn_oU
YouTube Data API でプレイリストを引いても後者しか貰えない
https://developers.google.com/youtube/v3/docs/playlistItems/list?apix_params={"part"%3A%5B"contentDetails"%2C"snippet"%5D%2C"maxResults"%3A100%2C"playlistId"%3A"OLAK5uy_lXxOLO7A0n-BrtVdM28AE_ddvYuQRnI7U"}#実際に試してみる
InnerTube でアルバムを引いても Music Premium に入っているアカウントで認証していないと動画IDが取れない
日本でかつMusic Premium に入っていない状態だとそもそも↑のプレイリストが見れない
認証なしで日本用動画IDを取る方法募集中です
よくよく考えると YouTube Data API のバグっぽいし報告した https://issuetracker.google.com/issues/227646699
クライアント上だと見た目が(アーティスト名 - Topic ではなく)アーティストの公式チャンネルになる曲
例: fhána https://www.youtube.com/watch?v=xiCdLC6bWU4
Webだと投稿者が https://www.youtube.com/channel/UC1aOxPe_LKL6GvK-nwaTO6Q になる
fhána Official Channel
YouTube Data API 上の投稿者は https://www.youtube.com/channel/UC3eB6Tr5w4FdZ0RxBwebNTA
fhána - トピック
InnerTube だと player の playerConfig.webPlayerConfig.webPlayerActionsPorting.subscribeCommand.subscribeEndpoint.channelIds あたりから取れる?
YouTube Music でしかタイトルが日本語にならない曲
YouTube Music: セカイ (Live) https://music.youtube.com/watch?v=hGZ48pnQCZk
YouTube: Sekai (Live) https://www.youtube.com/watch?v=hGZ48pnQCZk
YouTube Data API v3 で hl=ja 付けてもだめ https://developers.google.com/youtube/v3/docs/videos/list?apix_params={"part"%3A%5B"snippet"%5D%2C"hl"%3A"ja"%2C"id"%3A%5B"hGZ48pnQCZk"%5D}
逆に、YouTube 上では日本語なのにYouTube Music だと英語になる曲
YouTube Music: fluctuation(feat. Hatsune Miku) https://music.youtube.com/watch?v=PFC9ZFtk7M0
YouTube: ゆらぎ (feat. Hatsune Miku) https://www.youtube.com/watch?v=PFC9ZFtk7M0
そこまでレアではない: アーティスト名がリンクにならない(≒アーティストのチャンネルがない)動画
https://music.youtube.com/watch?v=GJv1F4SXRNs
複数人だからリンクになっていないように思えるが…
複数人でも1チャンネルになっている例 https://music.youtube.com/watch?v=1vhVKk5tx3s
一人だがチャンネルがない例 https://music.youtube.com/watch?v=zb94ygyfJ-I
などがある
/browse/:id から /playlist?list=... への解決はリージョンロックで中身が見れない地域からだとできない
日本だと
https://gyazo.com/1a983768e6fd5bbea21957e964878eb8
海外だと
https://gyazo.com/0c12d10da4ca454636ee22f854fd552e
https://music.youtube.com/browse/MPREb_cNsXTLePwsd
困っている!誰か解決方法教えてください
ところで /playlist?list=... から /browse/:id に戻すには?
Web版にはそういうAPIはない
アクセスして謎のJSONを読めば貰えるが…?
よろしい ならばアプリだ
というわけで /youtubei/v1/navigation/resolve_url に {url: "https://music.youtube.com/playlist?list=..."} を渡すと endpoint.browseEndpoint.browseId が貰える!
これを browse すると真プレイリストIDが貰える