2011-09-26 14 views
5

बस यूट्यूब PHP एपीआई में खोदना शुरू कर दिया और ब्राउज़र आधारित ज़ेंड अपलोड स्क्रिप्ट काम कर रहा है। हालांकि, अपलोड किए जाने के बाद वीडियो की स्थिति को पुनर्प्राप्त करने के तरीके पर मुझे कोई दस्तावेज नहीं मिल रहा है। मुख्य कारण यह है कि मुझे इसकी आवश्यकता होगी त्रुटि प्रबंधन के लिए - मुझे यह जानने में सक्षम होना चाहिए कि वीडियो को YouTube द्वारा अनुमोदित किया गया था, क्योंकि कोई तकनीकी रूप से एक छवि या फ़ाइल को बहुत बड़ा अपलोड कर सकता है। मुझे यह जानने की जरूरत है कि vid को मंजूरी दे दी गई थी ताकि मुझे पता चले कि अंतिम उपयोगकर्ता को साइट पर वापस आने पर कौन सा संदेश प्रदर्शित करना है (यानी 'आपका वीडियो लाइव है' या 'वीडियो अपलोड विफल')।यूट्यूब PHP एपीआई - पहले अपलोड किए गए वीडियो की स्थिति प्राप्त करना?

YouTube PHP ब्राउज़र-आधारित अपलोड 200 की URL पैरामीटर स्थिति देता है भले ही प्रारूप या आकार गलत है, जो निश्चित रूप से सहायक नहीं है। YT ऑब्जेक्ट से यह जानकारी कैसे प्राप्त करें इस पर कोई विचार?

सब कुछ, जब कोई उपयोगकर्ता साइट पर वापस आ जाता है, तो मैं अपनी विशिष्ट वीडियो आईडी के आधार पर एक वाईटी ऑब्जेक्ट बनाने में सक्षम होना चाहता हूं, और यह पुष्टि करने में सक्षम होना चाहता हूं कि इसे अस्वीकार नहीं किया गया था। मैं YouTube obj शुरू करने के लिए क्लाइंटलॉगिन का उपयोग कर रहा हूं:

$authenticationURL= 'https://www.google.com/accounts/ClientLogin'; 
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
       $username = '[email protected]', 
       $password = 'mypassword', 
       $service = 'youtube', 
       $client = null, 
       $source = 'MySource', // a short string identifying your application 
       $loginToken = null, 
       $loginCaptcha = null, 
       $authenticationURL); 

कोई विचार?

+0

क्यों आप यह नहीं देख सकते कि उपयोगकर्ता YouTube पर भेजने से पहले बहुत बड़ी फ़ाइल अपलोड नहीं कर रहा है? – Olli

+3

क्योंकि यह सवाल नहीं है कि मैं पूछ रहा हूं :) – MindSculpt

+0

हाँ यह नहीं है। लेकिन यह जांचना आसान नहीं होगा कि फ़ाइल बहुत बड़ी है या नहीं? – Olli

उत्तर

4

व्हील, अंत में खोज के बाद और पिछले कुछ दिनों के लिए कोड को एक साथ पाई जाने के बाद इसका उत्तर मिला।

$yt->setMajorProtocolVersion(2); 
$youtubeEntry = $yt->getVideoEntry('YOUR_YOUTUBE_VID_ID', null, true); 

if ($youtubeEntry->getControl()){ 
    $control = $youtubeEntry->getControl(); 
    $state = $control->getState()->getName(); 
} 

बाहर $state प्रदर्शित करता है स्ट्रिंग 'failed' गूंज अगर वीडियो जो भी कारण के लिए स्वीकृत नहीं किया गया था: आप $yt वस्तु बनाने के बाद, स्थिति की जांच करने के लिए निम्न का उपयोग करें। अन्यथा यह खाली है, जिसका अर्थ है कि इसे मंजूरी दे दी गई थी और जाने के लिए अच्छा है (अन्य राज्य के नामों का आकलन करना होगा: प्रोसेसिंग, अस्वीकार, असफल, प्रतिबंधित, जैसा कि ऊपर सुझाए गए माइंट-जन स्टेलिंग के रूप में)।

पागल पहली बार YouTube API'ers के लिए यह जवाब कितना मुश्किल था। हल किया! (पीट्स स्वयं वापस)

1

क्या आपके पास कॉलकोकन है यदि यह बहुत आसान है।

इस उदाहरण के लिए मैं ज़ेंड एथसब के साथ Zend_Gdata_Youtube का उपयोग करता हूं।

जब आपका वीडियो अपलोड करना आपके पास कॉलटोकन था, तो इस कॉल टोकन के साथ आप वीडियो की स्थिति तक पहुंच सकते हैं। अगर राज्य तो आप अपने वीडियो किसी और उपलब्ध है राज्य की तरह एक स्ट्रिंग बनाने के रिक्त है

$authenticationURL= 'https://www.google.com/accounts/ClientLogin'; 
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
      $username = '[email protected]', 
      $password = 'mypassword', 
      $service = 'youtube', 
      $client = null, 
      $source = 'MySource', // a short string identifying your application 
      $loginToken = null, 
      $loginCaptcha = null, 
      $authenticationURL); 

$youtube = new Zend_Gdata_YouTube($httpClient, '', NULL, YOUTUBE_DEVELOPER_KEY); 

$youtubeEntry = $youtube->getFullVideoEntry('ID_OF_YOUTUBE_MOVIE'); 
// its the 11 digit id all youtube video's have 

$ youtubeEntry अपने सभी डेटा वीडियो के बारे में में

वर्तमान

$state = $youtubeEntry->getVideoState(); 

है इस।

(string) $state->getName(); 

लगभग 4 महत्वपूर्ण राज्य नाम हैं। (प्रसंस्करण, अस्वीकार, असफल, प्रतिबंधित)

+0

यह सुनिश्चित नहीं है कि मैं यहां एक कॉलटोकन का उपयोग कर सकता हूं; मैं उपयोगकर्ताओं को वेब अपलोड के माध्यम से एक विशिष्ट YouTube चैनल खाते में प्रकाशित करने की अनुमति दे रहा हूं। कोई लॉगिन या उपयोगकर्ता प्रमाणीकरण उपयोग नहीं किया जा रहा है , बस एक चैनल पर एक अपलोड। विचार? – MindSculpt

+0

यदि यह मदद करता है, तो मैं ऑब्जेक्ट शुरू करने के लिए क्लाइंटलॉगिन का उपयोग कर रहा हूं। मैंने कोड को मूल प्रश्न में जोड़ा है। – MindSculpt

+0

ठीक है, तो आपका लगभग वहां है। आपके पास httpclient है आपकी वीडियो स्थिति प्राप्त करना अब बहुत आसान है। मैंने उपरोक्त संपादन किया है, इसलिए मुझे उम्मीद है कि मदद करता है। –

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