Est-il possible de soumettre des demandes de traitement par lots avec l'API Python Youtube?
-
24-09-2019 - |
Question
J'écris une application en utilisant Python qui ajoute des vidéos à la playlist d'un utilisateur sur Youtube. Faire celui-ci à un moment provoque Youtube pour commencer mes demandes étranglant.
Il existe une API de traitement par lots qui vous permet de soumettre 50 demandes à la fois, mais je ne peux pas savoir à partir de la documentation comment soumettre une demande de traitement par lots. Les seules informations à ce sujet porte sur le contenu XML qui doit être envoyé pour la demande.
Quelqu'un sait-il comment soumettre une demande de traitement par lots?
La solution
Autres conseils
J'ai réussi à faire avancer les choses de cette façon:
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 )
flux résultant peut être réitérée en standard youtube api se nourrit. Bien que des précautions particulières de vidéos manquantes et d'autres
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