Можно ли представить запросы на обработку партии с API Python YouTube?

StackOverflow https://stackoverflow.com/questions/2180016

Вопрос

Я пишу приложение с помощью Python, который добавляет видео в список воспроизведения пользователя на YouTube. Делать это по времени заставляет YouTube начать дросселировать мои запросы.

Существует API пакетной обработки, который позволяет сразу подать 50 запросов, но я не могу выяснить из документов, как отправить запрос на обработку пакетной обработки. Единственная информация о ней охватывает содержание XML, которое необходимо отправить на запрос.

Кто-нибудь знает, как отправить запрос на обработку пакетных данных?

Это было полезно?

Решение

Похоже, это задокументировано на вики Gdata-Python-Client: http://code.google.com/p/gdata-python-client/wiki/usingbatchopatcherations.. Отказ В то время как примеры на этой странице предназначены для базы и таблиц, а не на YouTube, он должен быть довольно простым, чтобы применить те же методы для API Youtube. Вы, я полагаю, нужно использовать API V2.

Другие советы

Мне удалось сделать вещи так:

query = "<feed xmlns=\"http://www.w3.org/2005/Atom\""
query += " xmlns:media=\"http://search.yahoo.com/mrss/\""
query += " xmlns:batch=\"http://schemas.google.com/gdata/batch\""
query += " xmlns:yt=\"http://gdata.youtube.com/schemas/2007\">"
query += "<batch:operation type=\"query\"/>"

# Assume ids contain list of YouTube video IDs
for vid in ids:
   query += ("<entry><id>http://gdata.youtube.com/feeds/api/videos/%s</id></entry>" % vid)
query += "</feed>"

uri = 'http://gdata.youtube.com/feeds/api/videos/batch'

feed = client.Post( query, uri, converter=gdata.youtube.YouTubeVideoFeedFromString )

Результирующая подача может быть передана в качестве стандартных API Youtube API. Хотя особое уход за отсутствующими видео и другими u003Cbatch:status>- следует принимать:

if len(feed.entry):
   for entry in feed.entry:
      skip = False
      for x in entry.extension_elements:
         if x.tag == "status" and x.namespace == "http://schemas.google.com/gdata/batch" and x.attributes["code"] != "200":
                if x.attributes["code"] == "404":
               skip = True
            # Likewize you can check for entry's 403 e.g. Quota Exceeded etc
      ... # Your entry processing goes here
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top