2013-01-07 14 views
6

YouTube डेटा API का उपयोग कर काम करने के लिए वीडियो हटाने के प्राप्त नहीं कर सकता साथ वीडियो हटाने में असमर्थ। मैं अजगर क्लाइंट लाइब्रेरी का उपयोग कर रहा हूँ।YouTube डेटा API

यह सब सीधे दस्तावेज़ों से लगता है, इसलिए मैं वास्तव में उलझन में हूं कि यह क्यों काम नहीं कर रहा है। यहाँ मेरी समारोह है:

def delete_youtube_video_by_id(video_id): 
    yt_service = gdata.youtube.service.YouTubeService() 
    yt_service.email = YOUTUBE_EMAIL 
    yt_service.password = YOUTUBE_SECRET_PASSWORD 
    yt_service.source = YOUTUBE_SOURCE 
    yt_service.developer_key = YOUTUBE_SECRET_DEVELOPER_KEY 
    yt_service.client_id = YOUTUBE_CLIENT_ID 
    yt_service.ProgrammaticLogin() 
    video_entry = yt_service.GetYouTubeVideoEntry(video_id=video_id) 
    response = yt_service.DeleteVideoEntry(video_entry) 
    return response 

डॉक्स से, इस सच लौटना चाहिए अगर वीडियो सफलतापूर्वक नष्ट कर दिया गया है। हालांकि, यह कोई नहीं लौटाता है:

>>> response = delete_youtube_video_by_id('my_youtube_video_id') 
>>> type(response) 
<type 'NoneType'> 
>>> 

और वीडियो हटाया नहीं गया है। मैं जानता हूँ कि क्योंकि वे एक ही साख मैं पहली जगह में वीडियो अपलोड करने के लिए इस्तेमाल कर रहे हैं साख, अच्छे हैं, और मुझे पता आईडी अच्छा है, क्योंकि मैं इसे यूट्यूब में अपने चैनल से सीधे मिल गया।

कोई भी विचार?

उत्तर

4

मुझे पूरा यकीन है कि यह आपके अपलोड फ़ीड से वीडियो प्रविष्टि प्राप्त करने की आवश्यकता के कारण है, सामान्य वीडियो फ़ीड नहीं। अन्यथा प्रविष्टि संपादन योग्य नहीं है।

यह करने के लिए अनुवाद होगा

video_entry = yt_service.GetYouTubeVideoEntry('https://gdata.youtube.com/feeds/api/users/default/uploads/VIDEO_ID')

अजगर GData क्लाइंट लाइब्रेरी अभी भी डेटा API, जो एक लंबे समय के लिए अब पदावनत किया गया है की v1 का उपयोग करता है, और सामान्य रूप में क्लाइंट लाइब्रेरी अच्छी तरह से नहीं है बनाए रखा।

मैं v3 और संबंधित new client library पर स्विच करने की अनुशंसा करता हूं क्योंकि यह निश्चित रूप से भविष्य का माहौल है। हम एक handful of Python samples available now है, और जब तक वहाँ विशेष रूप से एक एक वीडियो को हटाने के लिए नहीं है, यह कुछ ऐसा दिखाई देगा

youtube.videos().delete(id=VIDEO_ID).execute()

(यह मानते हुए youtube है एक ठीक से अधिकृत यूट्यूब ग्राहक इंटरफ़ेस, उस पृष्ठ पर मौजूदा उदाहरण निम्नलिखित)।

+0

यह काम किया, बहुत बहुत शुक्रिया! हम एक बार हम एक अतिरिक्त क्षण है ... दुर्भाग्य से उस समय अब ​​नहीं है v3 में माइग्रेट करने पर ध्यान देंगे :) –

संबंधित मुद्दे