Open Foo-x opened 3 years ago
2020/11/22 1:22現在、仕様変更を確認。 すでに対応して審査待ち。
不具合報告です 2021-07-15現在、コメントが取得できないようです
ご報告ありがとうございます。 確認したところ、仕様が大幅に変わっていました。 申し訳ありませんが、対応に時間がかかりそうです。
以下調査メモ
例 https://www.youtube.com/watch?v=bpOnqpc7xxM
タイムスタンプ
2:46 開始
3:48 休みの理由や体調は本編終了後に話す
...
のコメントに対して、今までは単に1つのテキストだった。 新しい構造では以下のようになっている。
...
{
"text": "タイムスタンプ"
},
{
"text": "\n"
},
{
"text": "2:46",
"navigationEndpoint": {
"clickTrackingParams": "CHkQtnUiEwiK-Pm65OTxAhUKIFgKHWqyDZg=",
"commandMetadata": {
"webCommandMetadata": {
"url": "/watch?v=bpOnqpc7xxM&t=166s",
"webPageType": "WEB_PAGE_TYPE_WATCH",
"rootVe": 3832
}
},
"watchEndpoint": {
"videoId": "bpOnqpc7xxM",
"startTimeSeconds": 166
}
}
},
{
"text": " 開始\r"
},
{
"text": "\n"
},
{
"text": "3:48",
"navigationEndpoint": {
"clickTrackingParams": "CHkQtnUiEwiK-Pm65OTxAhUKIFgKHWqyDZg=",
"commandMetadata": {
"webCommandMetadata": {
"url": "/watch?v=bpOnqpc7xxM&t=228s",
"webPageType": "WEB_PAGE_TYPE_WATCH",
"rootVe": 3832
}
},
"watchEndpoint": {
"videoId": "bpOnqpc7xxM",
"startTimeSeconds": 228
}
}
},
{
"text": " 休みの理由や体調は本編終了後に話す\r"
},
{
"text": "\n"
},
...
途中の階層も変わっているので、パース処理を一から作り直す必要がありそう。
https://www.youtube.com/comment_service_ajax
だったが、新しいURLはhttps://www.youtube.com/youtubei/v1/next
所感 一時期、スマホ版YouTubeアプリでタイムスタンプによるソート機能が提供されていたので、そろそろ実装されるのかも。(今は使えなくなっている?ので断念した可能性もあり)
調査ありがとうございます!
タイムスタンプ禁断症状が出たので拡張機能を探していたのですが(どんだけだよ) YouTube Timestamps https://chrome.google.com/webstore/detail/youtube-timestamps/fjchmkcdmgeimkholkgodkejnikeklmh https://github.com/ris58h/youtube-timestamps/issues という 拡張を発見しました。この拡張機能は今も使えるのですが、不思議なことに最終更新が6/26なんですよね 一体どういう処理をしているのかわからないのですが、報告まで (ちなみに使用感としてはvtuberみたいに網羅的なタイムスタンプが貼られるアーカイブには相性が良くないです。かわいいタイムスタンプを連打する人がいるので)
情報ありがとうございます! 幸いコードが公開されていたので調べてみたところ、開発者が取得しているYouTube Data APIのAPIキーを拡張機能に埋め込んでいるようです。 この方法であれば公式のAPIを使用しているので、仕様変更で使えなくなることは基本的にないですね。 ただ、APIキーは1日のリクエスト回数に制限があるので、拡張機能のユーザが増えたり、ユーザのうちの誰かが頻繁に使用すると次の日まで使えなくなります。(すでにその内容のIssueも作られている様子) そのまま採用するのは難しいですが、今の実装だと仕様変更のたびに修正が必要になるので、たしかに別の方法を検討したほうがいいかもしれないですね...
私が使っている拡張機能に https://chrome.google.com/webstore/detail/thumbnail-rating-bar-for/cmlddjbnoehmihdmfhaacemlpgfbpoeb というのがありまして、これもYouTube Data APIを利用しています。ただし、YouTube Timestampsと違うのは、開発者のAPI KEYではなく、各ユーザーが各自にAPI KEYを取得してセットする方式な点です。 この方式一考の余地ありかと
1日考えましたが、ユーザのAPIキーを設定してもらう方法にしようと思います。 拡張機能を使うために作業を強制するのはなるべく避けていたのですが、定期的に動作しなくなるよりは良いという判断です。 設計からやり直すことになるので時間はかかりますが、一度動くようになれば安定するかと思います。 提案していただきありがとうございます。
バージョン0.6.4がストアに公開され、現時点でコメントが取得できていることを確認しています。
正常に動作してます!対応ありがとう
YouTubeの仕様が定期的に変わり、コメントが取得できなくなることがある。 コメントが取得できなくなったとき、および対応が完了したときにこちらに記述していく。