هل من الممكن إرسال طلبات معالجة الدُفعات مع Python YouTube API؟

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

سؤال

أنا أكتب تطبيقًا باستخدام Python يضيف مقاطع فيديو إلى قائمة تشغيل المستخدم على YouTube. يؤدي القيام بهذا في وقت واحد في وقت بدء تشغيل YouTube في اختناق طلباتي.

هناك واجهة برمجة تطبيقات معالجة الدُفعات تتيح لك تقديم 50 طلبًا في وقت واحد ، لكن لا يمكنني معرفة ذلك من المستندات كيفية إرسال طلب معالجة الدُفعات. تغطي المعلومات الوحيدة عنها محتوى XML الذي يجب إرساله للطلب.

هل يعرف أي شخص كيفية تقديم طلب معالجة الدُفعات؟

هل كانت مفيدة؟

المحلول

يبدو أن هذا موثق على ويكي Gdata-Python-Client: http://code.google.com/p/gdata-python-client/wiki/usingbatchoperations. على الرغم من أن الأمثلة الواردة في تلك الصفحة مخصصة للقاعدة وجداول البيانات ، وليس YouTube ، يجب أن يكون من السهل إلى حد ما تطبيق نفس التقنيات على واجهة برمجة تطبيقات YouTube. سوف ، ، على ما أعتقد ، بحاجة إلى استخدام واجهة برمجة تطبيقات 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 )

يمكن تكرار التغذية الناتجة على أنه خلاصات واجهة برمجة تطبيقات YouTube القياسية. على الرغم من رعاية خاصة لمقاطع الفيديو المفقودة وغيرها 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