ここでどうすべきかアドバイスが欲しいのですが、同時に、この状況をより良く処理する方法についてのアイデアもあります。
何が「起こり得る」か
一つの仮説として、当サーバーがYouTubeによって音楽動画の農作業(farm)とみなされ、制限またはブロックされている可能性があります。
私たちはイギリスの非常に目立たない小さなフォーラムで、トラフィックも僅かですが、音楽動画に関するスレッドがいくつかあります(実際にはサイズが大きいため1つが2つに分割されています)。1万件+2万件の投稿があります。これは音楽の連鎖であり、次の投稿者が前回の投稿に関連する(多くの場合、間接的に関連する)曲を投稿する形式です。
もちろん、他のスレッドにもYouTubeのリンクはありますが、このスレッドは特に(約100%)音楽で埋め尽くされています。
週末に再構築(rebake)を行った後、YouTubeがOneboxerが多数の音楽動画のヘッダーを取得しようとする活動を確認し、アルゴリズムによって当サーバーが「悪い子リスト」に入れられたのではないかと推測しています。
その後、投稿の再構築を試みたところ、これがYouTubeの疑念を確信させた可能性があります。つまり、このIPアドレスからのすべての活動が音楽動画のダウンロード試行であるとみなされたのです。
Digital Ocean に関連している可能性
YouTubeの429エラーについてGoogle検索を行い、YouTube APIの結果を無視すると、最終的に類似の音声を持つ問題群に辿り着きます。これらはすべて、仮想サーバー上にあることが原因でIPアドレスがグレーリスト/ブラックリスト/禁止リストに登録されたと述べており、特にDigital Oceanの名前が言及されています。
YouTubeがIPアドレスのシリーズを「禁止」し、他の正当なサーバーがしばしば巻き添え被害を受ける可能性があるという指摘があります。
以下はそのような問題と潜在的な解決策の一例です。
https://support.google.com/youtube/thread/21697789?hl=en
また、embed.ly APIで働く開発者がmedium.comに投稿した別の事例もあります。
https://support.google.com/youtube/thread/21939228?hl=en
最初の投稿で提案された解決策は、dropletでIPv6を無効化することでした。
これは妥当な推測でしょうか?また、何か問題を引き起こすでしょうか?
現時点ではこれを実行するのを控えており、解決に必要な他のデータを収集できるようにしています。
本来起こるべきこと
まず、私の経験がエッジケースであり、変更は不要だという反応が来ることは理解しています。
それは理解できます。しかし、もし@marcozambiと私が比較的短期間に同じ問題に遭遇したのであれば、これは他の人も直面する可能性があることを示唆しています。もしかすると、YouTubeは埋め込みの監視を最近より厳格にしたのでしょうか?
私のフォーラムは現在、完全に立ち往生しています。Onebox化に失敗したリンクが数万件ありますが、それらがどこにあるかはわからず、すべてを見つけるためには完全な再構築しか考えられず、それは間違いなくYouTubeからさらに否定的な注目を集めるでしょう。
少なくとも、レート制限エラーに遭遇した際にOneboxが静かに失敗することは許されません。管理者の注意を引く必要があり、可能な限り、レート制限の問題を引き起こしたプロセスを一時停止する必要があります。
フォーラム所有者に問題を知らせるためのオプション
これは簡単ではないと思います。全く。
Oneboxには、明確に異なる役割がいくつかあると考えています。
a) 投稿が作成される際にリアルタイムでOneboxを構築する
b) 背景プロセス(ヘッドレス)で古い投稿の再構築(すでにリンクが既知の場合が多い)に応答する
c) 移行/再構築中に大量のバックグラウンドジョブの処理を依頼される
シナリオa) でレート制限エラーが発生した場合、投稿者はOneboxが展開されなかったことに気づき、フォーラム管理者に苦情を申し立てる可能性があります。気づかれるかもしれません。また、作成中に単一のエラーを捕捉し、管理者にエラーやメッセージをプッシュすることも可能かもしれません。
シナリオb) では、失敗が投稿のバックグラウンド処理中に発生する可能性があるため、再試行が必要か、または再試行回数が上限に達した場合は失敗として処理し、フォーラム管理者に通知する必要があります。
シナリオc) では、大量の失敗が同時に発生しているという広範な文脈を知る必要があります。現時点では、投稿の再構築プロセスを統括する制御が存在しないため、Oneboxから返された1万件の429エラーが、管理者に1万件の個別メッセージを送るよりも大きな問題として認識されるとは思えません。
実際には、そのような失敗が発生した場合、レート制限が解除されるまで、YouTube(および他のプロバイダーの場合も)へのOnebox呼び出しによる動画の展開をすべて保留にする必要があります。
代替アプローチ
送信リクエストのレート制限
予防は治療に勝るという格言が示唆するように、Discourseのレートリミッターをリクエストの前に配置し、Discourseが設定に基づいてリクエストを保留させることが考えられます。
ただし、これは再構築や移行に混乱を招く可能性があります。
Onebox Assistant
おそらく、@merefield氏がOnebox Assistantプラグインで使用しているような、埋め込みをキャッシュおよびプロキシする組織との商業的関係が必要なのかもしれません。
'bot’のホワイトリスト登録
Discourseの’bot’をYouTubeでホワイトリスト登録する方法を見つけることは可能でしょうか?おそらく乱用されやすすぎるでしょう。
YouTube API
OneboxがTwitterに対して行っているように、レート制限が緩和されている場合、YouTube APIを使用することは可能でしょうか?
