さまざまなプレイリストからの YouTube ビデオのリストがあり、これらのビデオがまだ有効かどうかを確認する必要があります (約 1000 です)。私が現在行っていることは、この単純なスクリプトで API v2 と Groovy を使用して Youtube にアクセスすることです。
import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.Method.GET
http = new HTTPBuilder('http://gdata.youtube.com')
myVideoIds.each { id ->
if (!isValidYoutubeUrl(id)) {
// do stuff
}
}
boolean isValidYoutubeUrl (id) {
boolean valid = true
http.request(GET) {
uri.path = "feeds/api/videos/${id}"
headers.'User-Agent' = 'Mozilla/5.0 Ubuntu/8.10 Firefox/3.0.4'
response.failure = { resp ->
valid = false
}
}
valid
}
しかし、数秒後に単一の ID に対して 403 を返し始めます (これは、あまりにも多くのリクエストを密接に実行していることが原因である可能性があります)。のようなものを挿入すると問題が軽減されThread.sleep(3000)
ます。リクエストを遅らせるよりも良い解決策はありますか?