У меня есть список видеороликов youtube из разных плейлистов, и мне нужно проверить, действительно ли эти видеоролики остаются в силе (их около 1000). То, что я делаю в данный момент он ударяя Youtube, используя его API v2 и Groovy с помощью этого простого скрипта:Несколько запросов к API Youtube V2 с использованием Groovy
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
}
, но через несколько секунд он начинает возвращать 403 ни для одного идентификатора (это может быть связано с факт, что это слишком много запросов). Проблема уменьшается, если я вставляю что-то вроде Thread.sleep(3000)
. Есть ли лучшее решение, чем просто откладывание запросов?
Спасибо за ваши предложения, я поеду за ним! – Randomize