heroku上のアプリからyoutubeの動画にアクセスして、ogpを取得していたんだけど、あるときまったく取得できなくなった。
ローカルでは大丈夫なので、herokuアプリ上でだけ。
で、実際にherokuアプリ上でアクセスしてみると、次のような画面が表示されていることがわかった。
Sorry for the interruption. We have been receiving a large volume of requests from your network.
To continue with your YouTube experience, please fill out the form below.
・・まじ!?
アクセス頻度としては、一日10回もアクセスしてない。めっちゃ少ないね。
これで拒否されるってことは考えられないので、herokuの同一ネットワークにある別の他人のアプリが大量にyoutubeにアクセスしたりしてるんか?
と仮説をたてたので、別ネットワークに移動することにした。
とりあえずdynoを再起動してみるか、と思って次のcurlを使う方法を試してみた。
https://devcenter.heroku.com/articles/platform-api-reference#dyno-restart-all
でも、oauthトークンをちゃんと使用してもいまいち成功しなかった。
しょうがない、herokuコマンドでいいか。
heroku ps:restart -a hogehogefuga-app
再起動後、youtubeにアクセスしてみるとあら不思議、ogpが取得できるようになりました。
よし
ちょっと検証が納得いくほど出来てないので、嘘かもしれないけど、ps:restartしたらyoutubeにアクセス出来るようになりました。