tl;dr:私たちが直面しているのは、同じ問題のようです。最近の変更によりレート制限の問題が発生している場合、移行中や投稿の再ベイク中、あるいは単にフォーラムが非常に混雑している状況で、他のユーザーも同様の問題に直面し始める可能性があります。Onebox が「見かけ上」失敗してエラーを出力しないため、ユーザーが YouTube の onebox が表示されていないと報告するまで、これらの問題に気づくことができません。
背景
バージョン 2.6.0.beta 1 を使用しています。
ユーザーから「非安全なコンテンツ」に関するメッセージが届いていました。調査したところ、Chrome が HTTP サイトからリンクされた画像に対して警告を出しているようでした。そこで、Discourse を設定してすべての画像やメディアをダウンロードし、HTTPS で配信するように変更しました。
設定を変更した後、過去の投稿の再ベイクを行う必要がありました。その再ベイク以降、以前は onebox として表示されていた YouTube 動画の大部分が、再びリンク URL として表示されるようになりました。
10,000 件の投稿からなるスレッドがあり、そこには YouTube 動画への返信のみが含まれており、すべての投稿が onebox ではなく URL として表示されています。
再ベイク中は、キューに保留されたジョブが自然に処理されたため、削除されたジョブがキューに留まっているわけではありません。
@marcozambi が報告した同じエラーメッセージは確認していませんが、私たちもレート制限に抵触していると考えています。
試したこと
レート制限の仮説を裏付けるため、私が作成した小さなコードで投稿を再ベイクしたところ、スレッド内の最初の 80 件以上の YouTube 動画は正常に onebox 化されましたが、残りの動画は変換に失敗しました。
その時点では、投稿を編集してわずかな修正を加えて再保存しても、URL が onebox として「展開」されませんでした。同時に、すべてのキューは空か、期待通り即座に処理される最小限のジョブのみが含まれていました。
そのコードを 30 分間再実行しても、リンクの onebox 化を強制できませんでした。80 という数字に特別な意味があるわけではなく、利用可能なクォータの範囲内だったに過ぎないと考えられます。
@marcozambi は、他のリンクが失敗する中で /embed/ 形式の YouTube リンクが機能したと報告していました。そこで、コードを修正して YouTube リンクを /embed/ 形式に変換する正規表現による検索と置換を追加しました。
コードは機能しました。
しかし、再度コードを実行して投稿を再ベイクしただけでは、onebox として表示されませんでした。
今後の計画として、大規模なスレッド内のすべての YouTube リンクを /embed/ 形式に変換するタスクを実験的に実行する予定です。もしそれが失敗するか、より高いレート制限に抵触する場合は、@merefield の Onebox Assistant を検討します。
後ほど更新を投稿します。