বিকাশকারীর গাইড: পাইথন

YouTube ডেটা API ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে Google ডেটা API ফিডের আকারে YouTube সামগ্রী পুনরুদ্ধার এবং আপডেট করার অনুমতি দেয়৷ আপনার ক্লায়েন্ট অ্যাপ্লিকেশনটি ভিডিও, মন্তব্য, প্রতিক্রিয়া, প্লেলিস্ট, ব্যবহারকারীর প্রোফাইল এবং ব্যবহারকারীর পরিচিতি এবং নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন ভিডিওগুলির জন্য ক্যোয়ারী আনয়ন, অনুসন্ধান এবং আপডেট করতে YouTube ডেটা API ফিড ব্যবহার করতে পারে।

YouTube ডেটা API-এর ক্ষমতার উপর কিছু পটভূমি প্রদান করার পাশাপাশি, এই নথিটি পাইথন ক্লায়েন্ট লাইব্রেরি ব্যবহার করে API-এর সাথে ইন্টারঅ্যাক্ট করার উদাহরণ প্রদান করে। পাইথন ক্লায়েন্ট লাইব্রেরি ব্যবহার করার জন্য, আপনাকে পাইথন 2.0+ এবং এলিমেন্ট ট্রি, httplib এবং urllib মডিউলগুলির প্রয়োজন হবে। আরো বিস্তারিত জানার জন্য নির্ভরতা মডিউল দেখুন।

আপনার যদি পাইথন ক্লায়েন্ট লাইব্রেরি সেট আপ করতে সাহায্যের প্রয়োজন হয়, শুরু করার নির্দেশিকাটি দেখার জায়গা। আপনি যদি ইউটিউবের সাথে ইন্টারঅ্যাক্ট করতে পাইথন ক্লায়েন্ট লাইব্রেরি দ্বারা ব্যবহৃত অন্তর্নিহিত প্রোটোকল সম্পর্কে আরও বুঝতে আগ্রহী হন, তাহলে বিকাশকারীর গাইড প্রোটোকল পৃষ্ঠাটি দেখুন।

এই নথি সম্পর্কে

শ্রোতা

এই নথিটি এমন প্রোগ্রামারদের জন্য যারা পাইথন ক্লায়েন্ট লাইব্রেরি ব্যবহার করে YouTube-এর সাথে ইন্টারঅ্যাক্ট করতে পারে এমন ক্লায়েন্ট অ্যাপ্লিকেশন লিখতে চান। এটি মৌলিক ডেটা API ইন্টারঅ্যাকশনের উদাহরণগুলির একটি সিরিজ প্রদান করে।

YouTube ডেটা API রেফারেন্স তথ্যের জন্য, রেফারেন্স নির্দেশিকা দেখুন।

এই নথিটি অনুমান করে যে আপনি Google Data APIs প্রোটোকলের পিছনে সাধারণ ধারণাগুলি বোঝেন এবং আপনি জানেন কিভাবে Python এ প্রোগ্রাম করতে হয়।

পাইথন ক্লাস এবং পদ্ধতি সম্পর্কে তথ্যসূত্রের জন্য, সোর্স কোডের সাথে অন্তর্ভুক্ত pyDocs ( পরিষেবা ক্লাস এবং ডেটা ক্লাসের জন্য) দেখুন।

নথি কাঠামো

এই নথিতে নিম্নলিখিত বিভাগগুলি রয়েছে:

  • প্রমাণীকরণ বিভাগটি একটি নির্দিষ্ট ব্যবহারকারীর অ্যাকাউন্টের সাথে API ক্রিয়াকলাপ সংযুক্ত করার জন্য উপলব্ধ দুটি ভিন্ন প্রমাণীকরণ পদ্ধতি বর্ণনা করে। এই বিভাগটি YouTube ডেটা API এবং অন্যান্য Google ডেটা API-এর জন্য প্রমাণীকরণের মধ্যে পার্থক্যগুলিকেও রূপরেখা দেয়৷ এই নথি জুড়ে, নির্দিষ্ট API ফাংশনগুলির ব্যাখ্যা স্পষ্টভাবে নির্দেশ করবে যে ফাংশনের ব্যবহারকারীর প্রমাণীকরণ প্রয়োজন কিনা। সাধারণভাবে ভিডিও বা ফিড ডেটা পরিবর্তন করে এমন সমস্ত অনুরোধকে প্রমাণীকরণ করতে হবে। সর্বজনীন ভিডিওগুলির জন্য শুধুমাত্র-পঠন অনুরোধগুলির প্রমাণীকরণের প্রয়োজন নেই৷

  • ভিডিও ফিড এবং এন্ট্রি বোঝার বিভাগটি একটি নমুনা API প্রতিক্রিয়া প্রদান করে এবং ভিডিওগুলির একটি তালিকা বা অনুসন্ধান ফলাফলের একটি সেট থেকে কীভাবে একটি ভিডিও সম্পর্কে তথ্য বের করতে হয় তা ব্যাখ্যা করে৷ এই বিভাগটি একটি নির্দিষ্ট ভিডিও এন্ট্রি সম্পর্কে মেটা-ডেটা কীভাবে অ্যাক্সেস করতে হয় তাও ব্যাখ্যা করে। অবশেষে, এই বিভাগটি একটি পৃথক ভিডিও এন্ট্রি আপডেট করার প্রক্রিয়া ব্যাখ্যা করে।

  • ভিডিওগুলি পুনরুদ্ধার করা এবং অনুসন্ধান করা বিভাগটি ব্যাখ্যা করে যে কীভাবে ভিডিওগুলির নির্দিষ্ট তালিকা আনতে হয়, যেমন YouTube-এর সর্বাধিক জনপ্রিয় ভিডিওগুলির একটি স্ট্যান্ডার্ড ফিড৷ ভিডিওগুলির অন্যান্য তালিকার মধ্যে একটি নির্দিষ্ট ব্যবহারকারীর দ্বারা আপলোড করা ভিডিও এবং একটি নির্দিষ্ট ভিডিওর সাথে সম্পর্কিত ভিডিওগুলির তালিকা অন্তর্ভুক্ত৷ ব্যবহারকারীদের নির্দিষ্ট অনুসন্ধান পদ বা বিভাগ দ্বারা YouTube এর ভিডিও লাইব্রেরির মাধ্যমে অনুসন্ধান করতে দেওয়ার জন্য কীভাবে API ব্যবহার করতে হয় তাও এই বিভাগে ব্যাখ্যা করে৷

  • আপলোড করা ভিডিও বিভাগটি সংক্ষেপে দুটি উপায় ব্যাখ্যা করে যে আপনি ব্যবহারকারীদের আপনার অ্যাপ্লিকেশন থেকে YouTube-এ ভিডিও আপলোড করার অনুমতি দিতে পারেন। উপরন্তু, এই বিভাগটি ব্যাখ্যা করে কিভাবে অন্যান্য ভিডিওর প্রতিক্রিয়া হিসেবে ভিডিও আপলোড করতে হয়।

  • ভিডিও আপডেট করা এবং মুছে ফেলার বিভাগটি বর্ণনা করে যে কীভাবে একটি YouTube ভিডিও সম্পর্কে তথ্য আপডেট করতে API ব্যবহার করতে হয়। এপিআই ব্যবহার করে কীভাবে একটি ভিডিও সরানো যায় তাও এটি বর্ণনা করে।

  • সম্প্রদায় বৈশিষ্ট্যগুলি ব্যবহার করা বিভাগটি API ফাংশনগুলি বর্ণনা করে যা আপনার ব্যবহারকারীদের YouTube ভিডিওগুলির সাথে ইন্টারঅ্যাক্ট করতে দেয়৷ এই ফাংশনগুলি একটি বিদ্যমান ভিডিওতে একটি রেটিং, মন্তব্য বা অভিযোগ পোস্ট করার অনুরোধগুলি ব্যাখ্যা করে৷ আপনি ভিডিও মন্তব্যের তালিকা পুনরুদ্ধার করতে API ব্যবহার করতে পারেন।

  • ভিডিওগুলি সংরক্ষণ এবং সংগ্রহ করা বিভাগটি ব্যাখ্যা করে যে কীভাবে প্রিয় ভিডিও, ভিডিও প্লেলিস্ট এবং YouTube চ্যানেলগুলিতে সদস্যতা অ্যাক্সেস করতে, তৈরি করতে এবং আপডেট করতে API ব্যবহার করতে হয়৷ এটি ভিডিও যোগ এবং অপসারণের মাধ্যমে ভিডিও প্লেলিস্ট এবং পছন্দগুলি কীভাবে সংশোধন করতে হয় তাও দেখায়৷

  • ব্যবহারকারীর ইন্টারঅ্যাকশন সক্ষম করা বিভাগটি ব্যাখ্যা করে যে কীভাবে ব্যবহারকারীর প্রোফাইলগুলি পুনরুদ্ধার এবং আপডেট করতে API ব্যবহার করতে হয়। এই বিভাগটি কীভাবে ব্যবহারকারীর পরিচিতিগুলি পুনরুদ্ধার করতে, যুক্ত করতে, আপডেট করতে এবং মুছতে হবে তা ব্যাখ্যা করে৷

শুরু হচ্ছে

প্রয়োজনীয়তা

আপনার ক্লায়েন্ট অ্যাপ্লিকেশন ভিডিও, মন্তব্য, প্রতিক্রিয়া, প্লেলিস্ট, সদস্যতা, ব্যবহারকারী প্রোফাইল এবং আরও অনেক কিছু অনুসন্ধান, পুনরুদ্ধার এবং আপডেট করতে YouTube ডেটা API ফিড ব্যবহার করতে পারে।

YouTube ডেটা API-এর ক্ষমতার উপর কিছু পটভূমি প্রদান করার পাশাপাশি, এই নথিটি পাইথন ক্লায়েন্ট লাইব্রেরি ব্যবহার করে API-এর সাথে ইন্টারঅ্যাক্ট করার উদাহরণ প্রদান করে। Python ক্লায়েন্ট লাইব্রেরি ব্যবহার করার জন্য, আপনাকে Python 2.2+ এবং Element Tree, httplib এবং urllib মডিউলগুলির প্রয়োজন হবে। আরো বিস্তারিত জানার জন্য নির্ভরতা মডিউল দেখুন।

আপনার পরিবেশ কনফিগার করার বিষয়ে আরও তথ্যের জন্য শুরু করার নির্দেশিকা দেখুন। আপনি যদি ইউটিউবের সাথে ইন্টারঅ্যাক্ট করতে পাইথন ক্লায়েন্ট লাইব্রেরি দ্বারা ব্যবহৃত অন্তর্নিহিত প্রোটোকল সম্পর্কে আরও বুঝতে আগ্রহী হন, তাহলে বিকাশকারীর গাইড প্রোটোকল পৃষ্ঠাটি দেখুন।

নীচের নমুনা কোডের স্নিপেটগুলি আপনার কোডে অনুলিপি/পেস্ট করা যেতে পারে এবং আপনার প্রয়োজন অনুসারে পরিবর্তন করা যেতে পারে।

আপনি YouTube ডেটা এপিআই-এর সাহায্যে যেকোনো ক্রিয়াকলাপ সম্পাদন করার আগে, আপনাকে অবশ্যই একটি gdata.youtube.service.YouTubeService অবজেক্ট শুরু করতে হবে, যেমনটি নীচে দেখানো হয়েছে। নীচে তালিকাভুক্ত import বিবৃতিগুলি স্বয়ংক্রিয়ভাবে gdata.media এবং gdata.geo মডিউলগুলি থেকে আরও আমদানি সম্পাদন করবে৷ অনুগ্রহ করে মনে রাখবেন যে সর্বজনীন বিষয়বস্তু পুনরুদ্ধার করা বাদ দিয়ে সমস্ত ক্রিয়াকলাপের জন্য প্রমাণীকরণের প্রয়োজন হবে৷

import gdata.youtube
import gdata.youtube.service

yt_service = gdata.youtube.service.YouTubeService()

# Turn on HTTPS/SSL access.
# Note: SSL is not available at this time for uploads.
yt_service.ssl = True

এই গাইডের বেশিরভাগ পদ্ধতির উদাহরণগুলি gdata.youtube.service.YouTubeService এর একটি উদাহরণের উপর কাজ করে। ইন্টারেক্টিভ পাইথন ইন্টারপ্রেটার থেকে অপ্রমাণিত অনুরোধগুলি পরীক্ষা করা উপকারী হতে পারে।

দ্রষ্টব্য : পাইথন ক্লায়েন্ট লাইব্রেরি আপনার পাথে সঠিকভাবে যোগ করতে হবে। অনুগ্রহ করে নিশ্চিত করুন যে আপনি প্রদত্ত setup.py স্ক্রিপ্টটি চালিয়ে এটি ইনস্টল করেছেন৷ আরও তথ্যের জন্য শুরু করার নির্দেশিকা পড়ুন।

প্রমাণীকরণ

পাইথন ক্লায়েন্ট লাইব্রেরি পাবলিক বা প্রাইভেট ফিডের সাথে কাজ করতে ব্যবহার করা যেতে পারে। পাবলিক ফিড শুধুমাত্র পঠনযোগ্য এবং কোনো প্রমাণীকরণের প্রয়োজন নেই। ব্যক্তিগত ফিডের জন্য আপনাকে YouTube সার্ভারে প্রমাণীকরণ করতে হবে।

প্রমাণীকরণ ClientLogin প্রমাণীকরণের মাধ্যমে (ডেস্কটপ অ্যাপের জন্য), অথবা AuthSub প্রমাণীকরণের মাধ্যমে (ওয়েব অ্যাপ্লিকেশনের জন্য) সঞ্চালিত হতে পারে।

আপনার ডেভেলপার কী এবং ক্লায়েন্ট আইডি সেট করা হচ্ছে

একটি বিকাশকারী কী YouTube বিকাশকারীকে সনাক্ত করে যে একটি API অনুরোধ জমা দিচ্ছে৷ একটি ক্লায়েন্ট আইডি লগিং এবং ডিবাগিং উদ্দেশ্যে আপনার অ্যাপ্লিকেশন সনাক্ত করে।

যখন আপনি পাইথন ক্লায়েন্ট লাইব্রেরি ব্যবহার করে একটি API অনুরোধ করেন, তখন আপনার বিকাশকারী কী নির্দিষ্ট করতে X-GData-Key অনুরোধ শিরোনামটি ব্যবহার করা হয় এবং X-GData-Client শিরোনামটি আপনার ক্লায়েন্ট আইডি নির্দিষ্ট করতে ব্যবহার করা হয়। ডেভেলপার কী এবং ক্লায়েন্ট আইডি YouTubeService অবজেক্টে সেট করা যেতে পারে, ব্যবহার করা হচ্ছে প্রমাণীকরণ স্কিম থেকে স্বাধীনভাবে:

yt_service.developer_key = 'ABCxyz123...'
yt_service.client_id = 'My-Client_id'

আপনাকে একটি YouTube বিকাশকারী কীর জন্য সাইন আপ করতে হবে৷

ওয়েব অ্যাপ্লিকেশনের জন্য AuthSub প্রমাণীকরণ

AuthSub প্রক্সি প্রমাণীকরণ ওয়েব অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয় যা তাদের ব্যবহারকারীদের YouTube/Google অ্যাকাউন্টে প্রমাণীকরণ করতে হবে। অপারেটরের YouTube ব্যবহারকারীর জন্য ব্যবহারকারীর নাম এবং পাসওয়ার্ড অ্যাক্সেসের প্রয়োজন নেই — শুধুমাত্র বিশেষ AuthSub টোকেন প্রয়োজন।

ব্যবহারকারী যখন আপনার অ্যাপ্লিকেশনটি প্রথম পরিদর্শন করে, তখনও তাদের Google-এর পরিষেবাগুলির সাথে প্রমাণীকরণ করা হয়নি৷ এই ক্ষেত্রে, আপনাকে তাদের ইউটিউব অ্যাকাউন্টে অ্যাক্সেসের জন্য আপনার অ্যাপ্লিকেশানগুলির অনুরোধ অনুমোদন করার জন্য ব্যবহারকারীকে Google-এ নির্দেশিত একটি লিঙ্ক প্রদান করতে হবে৷ পাইথন ক্লায়েন্ট লাইব্রেরি এই URL তৈরি করার জন্য একটি ফাংশন প্রদান করে। নিচের কোডটি AuthSubRequest পৃষ্ঠার একটি লিঙ্ক সেট আপ করে।

def GetAuthSubUrl():
  next = 'http://www.example.com/video_upload.pyc'
  scope = 'http://gdata.youtube.com'
  secure = False
  session = True

yt_service = gdata.youtube.service.YouTubeService()
return yt_service.GenerateAuthSubURL(next, scope, secure, session)

authSubUrl = GetAuthSubUrl()
print '<a href="%s">Login to your Google account</a>' % authSubUrl

পরিষেবা অবজেক্টের GenerateAuthSubURL পদ্ধতিতে পাঠানো পরামিতিগুলি লক্ষ্য করুন:

  • পরবর্তী — পৃষ্ঠার URL যেটিতে ইউটিউবকে রিডাইরেক্ট করতে হবে ব্যবহারকারীরা আপনার অ্যাপ্লিকেশানকে তাদের অ্যাকাউন্ট অ্যাক্সেস করার অনুমতি দেওয়ার পরে৷
  • সুযোগ - ইঙ্গিত করে যে অ্যাপ্লিকেশনটি শুধুমাত্র YouTube API ফিডগুলি অ্যাক্সেস করবে৷
  • সুরক্ষিত — ইঙ্গিত করে যে টোকেন ফেরত দেওয়া নিরাপদ টোকেন হবে না।
  • অধিবেশন — এই টোকেনটি নির্দেশ করে বহু-ব্যবহারের (সেশন) টোকেনের জন্য বিনিময় করা যেতে পারে।

প্রত্যাবর্তিত ইউআরএলটি এরকম কিছু দেখাবে:

https://www.google.com/accounts/AuthSubRequest?scope=http%3A%2F%2Fgdata.youtube.com&session=1&secure=0&next=http%3A%2F%2Fwww.example.com%2Fvideo_upload.pyc

ব্যবহারকারী তারপর তাদের YouTube অ্যাকাউন্টে লগ ইন করতে লিঙ্কটি অনুসরণ করতে পারেন। ব্যবহারকারী আপনার অ্যাপ্লিকেশানটিকে তাদের অ্যাকাউন্ট অ্যাক্সেস করার অনুমতি দেওয়ার পরে, তাদের next URL-এ পুনঃনির্দেশিত করা হবে। URL-এর সাথে একটি ক্যোয়ারী প্যারামিটার হিসেবে যুক্ত করা একটি একক-ব্যবহারের টোকেন মান থাকবে। ইউআরএলটি এইরকম কিছু দেখায়:

http://www.example.com/video_upload.pyc?token=Abc123...

পরবর্তী বিভাগে এই টোকেন কিভাবে আপগ্রেড করা যায় তা প্রদর্শন করা হবে। নীচের স্নিপেটটি URL থেকে এই টোকেনটি পুনরুদ্ধার করার উপায়গুলির একটি প্রদর্শন করে:

import cgi
parameters = cgi.FieldStorage()
authsub_token = parameters[[]'token' ]

একটি সেশন টোকেনে আপগ্রেড করা হচ্ছে

নিরাপত্তার জন্য, এই টোকেনটি শুধুমাত্র একক-ব্যবহারের জন্য, তাই এখন আপনাকে একটি সেশন টোকেনের জন্য এই একক-ব্যবহারের টোকেনটি বিনিময় করতে হবে। এই প্রক্রিয়াটি AuthSub ডকুমেন্টেশনে বর্ণনা করা হয়েছে। নিম্নলিখিত কোড স্নিপেট দেখায় কিভাবে টোকেন আপগ্রেড করতে হয়।

yt_service = gdata.youtube.service.YouTubeService()
yt_service.SetAuthSubToken(authsub_token)
yt_service.UpgradeToSessionToken()

এই টোকেন মান একটি একক-ব্যবহারের AuthSub টোকেন প্রতিনিধিত্ব করে। যেহেতু session = True উপরে উল্লেখ করা হয়েছে, এই টোকেনটি UpgradeToSessionToken পদ্ধতি ব্যবহার করে একটি AuthSub সেশন টোকেনের জন্য বিনিময় করা যেতে পারে, যা AuthSubSessionToken পরিষেবাকে কল করে।

আপনার YouTubeService অবজেক্ট এখন সম্পূর্ণরূপে প্রমাণীকৃত এবং YouTube API-এর সাথে আরও সমস্ত অনুরোধ সম্পাদন করতে ব্যবহার করা যেতে পারে। AuthSub সেশন টোকেনগুলির মেয়াদ শেষ হবে না যদি না আপনি নির্দিষ্টভাবে তাদের প্রত্যাহার করার অনুরোধ জারি করেন, অথবা ব্যবহারকারী তাদের YouTube অ্যাকাউন্টে অনুমোদিত সাইট পৃষ্ঠায় গিয়ে অ্যাক্সেস প্রত্যাহার করার সিদ্ধান্ত নেন৷

ইনস্টল করা অ্যাপ্লিকেশনের জন্য ক্লায়েন্টলগইন প্রমাণীকরণ

ক্লায়েন্টলগইন প্রমাণীকরণ ইনস্টল করা অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয় যা হয় আপনার ব্যবহারকারীকে তাদের ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জন্য সঞ্চয় করতে বা জিজ্ঞাসা করতে পারে। প্রমাণীকরণের এই ফর্মটি ব্যবহার করার জন্য, gdata.service.GDataService ক্লাস থেকে উত্তরাধিকারসূত্রে প্রাপ্ত YouTubeService এর ProgrammaticLogin পদ্ধতিটি ব্যবহার করুন, যে ব্যবহারকারীর পক্ষে আপনার ক্লায়েন্ট প্রমাণীকরণের অনুরোধ পাঠাচ্ছে তার আইডি এবং পাসওয়ার্ড উল্লেখ করে৷

yt_service = gdata.youtube.service.YouTubeService()
yt_service.email = 'jo@gmail.com'
yt_service.password = 'mypassword'
yt_service.source = 'my-example-application'
yt_service.ProgrammaticLogin()

শংসাপত্রগুলি সেট হয়ে গেলে, YouTubeService অবজেক্টটি পরবর্তী সমস্ত অনুরোধগুলি পরিচালনা করতে ব্যবহার করা যেতে পারে। YouTube API-তে আপলোড এবং যেকোনো ধরনের 'লিখতে' অনুরোধ (মন্তব্য যোগ করা ইত্যাদি) সম্পাদন করতে সক্ষম হতে, নিশ্চিত করুন যে আপনি প্রমাণীকরণ করার সময় আপনার ডেভেলপার কী এবং ক্লায়েন্ট আইডি yt_service অবজেক্টে পাস করেছেন:

# A complete client login request
yt_service.email = 'jo@gmail.com'
yt_service.password = 'mypassword'
yt_service.source = 'my-example-application'
yt_service.developer_key = 'ABC123...'
yt_service.client_id = 'my-example-application'
yt_service.ProgrammaticLogin()

YouTubeService অবজেক্ট স্বয়ংক্রিয়ভাবে সঠিক X-GData-Key এবং X-GData-Client শিরোনাম সেট করে যখন developer_key এবং client_id বৈশিষ্ট্যগুলি সেট করা হয়।

দ্রষ্টব্য: অনুগ্রহ করে AuthSub এবং ClientLogin প্রক্রিয়া উভয় বিষয়ে আরও বিস্তারিত তথ্যের জন্য Google Data APIs প্রমাণীকরণ ডকুমেন্টেশন দেখুন।

ভিডিও ফিড এবং এন্ট্রি বোঝা

YouTube ডেটা এপিআই বেশ কয়েকটি ভিডিও ফিড প্রদান করে যা ভিডিওর তালিকা উপস্থাপন করে, যেমন স্ট্যান্ডার্ড ফিড, আপলোড, সদস্যতা এবং পছন্দসই। প্রতিটি ফিডের URL রেফারেন্স গাইডে নথিভুক্ত করা হয়েছে।

ভিডিওর একটি ফিড প্রদর্শন করা হচ্ছে

YouTube API-এর অনেক ফিড ভিডিও এন্ট্রি নিয়ে গঠিত। এই ফিডগুলিকে সাধারণভাবে gdata.youtube.YouTubeVideoFeed অবজেক্ট হিসাবে মডেল করা যেতে পারে, প্রতিটিতে বেশ কয়েকটি gdata.youtube.YouTubeVideoEntry অবজেক্ট রয়েছে। প্রতিটি ভিডিও এন্ট্রি YouTube-এর একটি ভিডিওর সাথে মিলে যায় এবং ভিডিও সম্পর্কে তথ্য থাকে।

ভিডিওগুলির একটি তালিকা পুনরুদ্ধারের মূল কাঠামোটি হল একটি ভিডিও ফিডে একটি URL তৈরি করা এবং তারপরে নিম্নলিখিত কোডের অনুরূপ এন্ট্রিগুলি একবারে প্রক্রিয়া করা:

def GetAndPrintVideoFeed(uri):
  yt_service = gdata.youtube.service.YouTubeService()
  feed = yt_service.GetYouTubeVideoFeed(uri)
  for entry in feed.entry:
    PrintEntryDetails(entry) # full documentation for this function

ভিডিওগুলি পুনরুদ্ধার করা এবং অনুসন্ধান করা বিভাগে অনেক সাধারণ ফিড URL এবং বিভিন্ন ভিডিও ফিডগুলি কীভাবে পুনরুদ্ধার করা যায় তার বিশদ বিবরণ।

একটি নির্দিষ্ট ভিডিও এন্ট্রি পুনরুদ্ধার করা হচ্ছে

আপনি একটি নির্দিষ্ট ভিডিও এন্ট্রির জন্য শুধুমাত্র তথ্য পুনরুদ্ধার করতে পারেন যদি আপনি তার ভিডিও আইডি জানেন। এন্ট্রি URL ভিডিও আইডির উপর ভিত্তি করে:

http://gdata.youtube.com/feeds/api/videos/videoID

নিম্নলিখিত কোডটি YouTube-এ একটি ভিডিওর সাথে সম্পর্কিত একটি gdata.youtube.YouTubeVideoEntry পুনরুদ্ধার করে:

entry = yt_service.GetYouTubeVideoEntry(video_id='the0KZLEacs')

ভিডিও এন্ট্রি বিষয়বস্তু

অনেকগুলি মেটা-ডেটা আছে যা একটি gdata.youtube.YouTubeVideoEntry অবজেক্ট থেকে পুনরুদ্ধার করা যেতে পারে, যেমন থাম্বনেইল, প্লেয়ার URL এবং ভিডিওর সময়কাল। নিম্নলিখিত কোড এই তথ্য কিছু পেতে কিভাবে প্রদর্শন করে. পাইথন ক্লায়েন্ট লাইব্রেরি XML উপাদানগুলিকে ক্লাসে ম্যাপ করে এই কার্যকারিতার বেশিরভাগই বিমূর্ত করে। একটি YouTubeVideoEntry এন্ট্রি সম্পর্কে বেশিরভাগ গুরুত্বপূর্ণ তথ্য media অ্যাট্রিবিউটের বাচ্চাদের কাছ থেকে পাওয়া যায় (একটি gdata.media.Group অবজেক্ট রয়েছে) এন্ট্রির মধ্যে (এক্সএমএল media:group উপাদানের প্রতিনিধিত্ব করে)। ভিডিও মেটা-ডেটা কিভাবে পুনরুদ্ধার করতে হয় তার একটি উদাহরণ নিচে দেওয়া হল:

def PrintEntryDetails(entry):
  print 'Video title: %s' % entry.media.title.text
  print 'Video published on: %s ' % entry.published.text
  print 'Video description: %s' % entry.media.description.text
  print 'Video category: %s' % entry.media.category[[]0].text
  print 'Video tags: %s' % entry.media.keywords.text
  print 'Video watch page: %s' % entry.media.player.url
  print 'Video flash player URL: %s' % entry.GetSwfUrl()
  print 'Video duration: %s' % entry.media.duration.seconds

  # non entry.media attributes
  print 'Video geo location: %s' % entry.geo.location()
  print 'Video view count: %s' % entry.statistics.view_count
  print 'Video rating: %s' % entry.rating.average

  # show alternate formats
  for alternate_format in entry.media.content:
    if 'isDefault' not in alternate_format.extension_attributes:
      print 'Alternate format: %s | url: %s ' % (alternate_format.type,
                                                 alternate_format.url)

  # show thumbnails
  for thumbnail in entry.media.thumbnail:
    print 'Thumbnail url: %s' % thumbnail.url

দ্রষ্টব্য: আপনার পৃষ্ঠায় একটি প্লেয়ারের সাথে একটি ভিডিও এম্বেড করার জন্য প্রয়োজনীয় তথ্য কীভাবে তৈরি করবেন সে সম্পর্কে আরও তথ্যের জন্য অনুগ্রহ করে প্রোটোকল গাইড দেখুন৷

ভিডিওগুলি পুনরুদ্ধার করা এবং অনুসন্ধান করা হচ্ছে৷

স্ট্যান্ডার্ড ফিড পুনরুদ্ধার করা হচ্ছে

YouTube ডেটা API YouTube-এর সর্বাধিক জনপ্রিয় ভিডিওগুলির একটি আদর্শ ফিড প্রদান করে৷ API পূর্বে অন্যান্য স্ট্যান্ডার্ড ফিডগুলিকে সমর্থন করেছিল, যেগুলি তখন থেকে অবমূল্যায়িত হয়েছে৷ আরও তথ্যের জন্য বিকাশকারীর নির্দেশিকা দেখুন।

YouTube-এর সর্বাধিক জনপ্রিয় ভিডিওগুলির ফিডের URL-এর নিম্নলিখিত বিন্যাস রয়েছে:

http://gdata.youtube.com/feeds/api/standardfeeds/most_popular

দ্রষ্টব্য: আপনি বিন্যাসে একটি লোকেলআইডি নির্দিষ্ট করে স্থানীয়-নির্দিষ্ট মানক ফিডগুলি পুনরুদ্ধার করতে পারেন: http://gdata.youtube.com/feeds/api/standardfeeds/ localeID /feedID । উদাহরণস্বরূপ, জাপানে সবচেয়ে জনপ্রিয় ভিডিওগুলি হবে: http://gdata.youtube.com/feeds/api/standardfeeds/JP/most_popular । অনুমিত লোকেলআইডিগুলির সম্পূর্ণ তালিকার জন্য, অনুগ্রহ করে রেফারেন্স গাইড পড়ুন।

def PrintVideoFeed(feed):
  for entry in feed.entry:
    PrintEntryDetails(entry)

def GetAndPrintFeedByUrl:
  yt_service = gdata.youtube.service.YouTubeService()

  # You can retrieve a YouTubeVideoFeed by passing in the URI
  uri = 'http://gdata.youtube.com/feeds/api/standardfeeds/JP/most_popular'
  PrintVideoFeed(yt_service.GetYouTubeVideoFeed(uri))

একটি নির্দিষ্ট ব্যবহারকারী দ্বারা আপলোড করা ভিডিও পুনরুদ্ধার করা হচ্ছে

প্রতিটি YouTube ব্যবহারকারীর http://gdata.youtube.com/feeds/api/users/ username /uploads এ তাদের আপলোড করা ভিডিওগুলির সাথে সম্পর্কিত একটি ভিডিও ফিড রয়েছে। নিম্নলিখিত কোড প্রদর্শন করে কিভাবে একটি ব্যবহারকারী আপলোড ফিড আনতে এবং প্রদর্শন করতে হয়:

def GetAndPrintUserUploads(username):
  yt_service = gdata.youtube.service.YouTubeService()
  uri = 'http://gdata.youtube.com/feeds/api/users/%s/uploads' % username
  PrintVideoFeed(yt_service.GetYouTubeVideoFeed(uri))

দ্রষ্টব্য: আপনি বর্তমানে প্রমাণীকৃত ব্যবহারকারীর জন্য ভিডিও পুনরুদ্ধার করতে username জায়গায় স্ট্রিং 'ডিফল্ট' ব্যবহার করতে পারেন।

সম্পর্কিত ভিডিওগুলি পুনরুদ্ধার করতে, gdata.youtube.YouTubeVideoEntry অবজেক্টের ভিডিও আইডিটি gdata.youtube.service.YouTubeService অবজেক্টের GetYouTubeRelatedVideoFeed পদ্ধতিতে পাস করুন। এটি সম্পর্কিত এন্ট্রি ধারণকারী একটি YouTubeVideoFeed অবজেক্ট পুনরুদ্ধার করে।

related_feed = yt_service.GetYouTubeRelatedVideoFeed(video_id='abc123')

ভিডিও খুঁজছেন

YouTube ডেটা API আপনাকে নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন একটি এন্ট্রির সেটের অনুরোধ করতে দেয়, যেমন একটি নির্দিষ্ট লেখকের দ্বারা প্রকাশিত ভিডিও এন্ট্রির অনুরোধ করা, ভিডিও বিন্যাস দ্বারা বা একটি নির্দিষ্ট কীওয়ার্ড রয়েছে৷ এটি করার জন্য, আপনি আপনার নির্দিষ্ট অনুসন্ধানের মানদণ্ডের সাথে একটি gdata.service.YouTubeVideoQuery অবজেক্ট তৈরি করুন এবং এটি gdata.youtube.service.YouTubeService এর YouTubeQuery পদ্ধতিতে পাস করুন৷

নীচের উদাহরণটি দেখায় যে কীভাবে একটি অনুসন্ধান ক্যোয়ারী সম্পাদন করতে হয়, ফলাফলগুলি দেখার সংখ্যা অনুসারে, সীমাবদ্ধ ভিডিও সহ (এপিআই দ্বারা 'রেসি' হিসাবে উল্লেখ করা হয়েছে):

def SearchAndPrint(search_terms):
  yt_service = gdata.youtube.service.YouTubeService()
  query = gdata.youtube.service.YouTubeVideoQuery()
  query.vq = search_terms
  query.orderby = 'viewCount'
  query.racy = 'include'
  feed = yt_service.YouTubeQuery(query)
  PrintVideoFeed(feed)

gdata.service.Query ক্লাস এবং YouTubeVideoQuery এর মতো সাবক্লাসগুলি ফিড URL তৈরির জন্য দায়ী৷ উপরে দেখানো VideoQuery নিম্নলিখিতগুলির সমতুল্য একটি URL তৈরি করে:

http://gdata.youtube.com/feeds/api/videos?vq=<searchTerms>&racy=include&orderby=viewCount

সার্চ প্যারামিটার সেট করার জন্য এখানে কিছু সাধারণ YouTubeVideoQuery বৈশিষ্ট্য রয়েছে:

author
এন্ট্রির লেখক সেট করে। লেখক ইউটিউব ব্যবহারকারী নামের সমার্থক।
format
একটি ভিডিও বিন্যাস নির্দিষ্ট করে। মোবাইল ভিডিও প্লেব্যাকের জন্য দুই ধরনের RTSP স্ট্রিমিং ইউআরএল বা এমবেডযোগ্য ফ্ল্যাশ প্লেয়ারে একটি HTTP ইউআরএল নির্দিষ্ট করতে সাংখ্যিক প্যারামিটার গ্রহণ করে।
racy
ফলাফলে সীমাবদ্ধ সামগ্রী অন্তর্ভুক্ত করা উচিত কিনা তা নির্দেশ করে। শুধুমাত্র দুটি প্যারামিটার গ্রহণ করে: 'অন্তর্ভুক্ত' বা 'বাদ'।
max_results
একবারে ফেরত দেওয়ার জন্য সর্বাধিক সংখ্যক এন্ট্রি সেট করে।
start_index
পুনরুদ্ধার করা প্রথম ফলাফলের 1-ভিত্তিক সূচী সেট করে (পেজিংয়ের জন্য)।
orderby
relevance , viewCount , published , বা rating দ্বারা এন্ট্রি তালিকাভুক্ত করার ক্রম সেট করে৷
time
মানক ফিড ফলাফল সীমিত করার জন্য একটি সময়সীমা সেট করে: today , this_week , this_month , বা all_time
vq
একটি অনুসন্ধান ক্যোয়ারী শব্দ সেট করে। শিরোনাম, ট্যাগ এবং বিবরণের মতো সমস্ত ভিডিও মেটাডেটাতে নির্দিষ্ট স্ট্রিং অনুসন্ধান করে।

দ্রষ্টব্য: ক্যোয়ারী প্যারামিটার সম্পর্কে আরও তথ্যের জন্য, YouTube ডেটা API রেফারেন্স গাইড এবং Google ডেটা API রেফারেন্স গাইড দেখুন।

বিভাগ এবং কীওয়ার্ড দিয়ে অনুসন্ধান করা হচ্ছে

আপনি অনুসন্ধান ফলাফলগুলিকে শুধুমাত্র ভিডিওগুলি দেখানোর জন্য সীমাবদ্ধ করতে পারেন যা একটি নির্দিষ্ট বিভাগ এবং কীওয়ার্ডের সাথে মেলে। রেফারেন্স গাইড বর্ণনা করে যে কীভাবে পূর্ব-নির্ধারিত YouTube বিভাগ (যেমন সঙ্গীত, মানুষ এবং ব্লগ ইত্যাদি) এবং ব্যবহারকারী-সংজ্ঞায়িত কীওয়ার্ড (ট্যাগ) উভয়ই নির্দিষ্ট করতে হয়।

নিম্নোক্ত কোডটি দেখায় কিভাবে কীওয়ার্ড (ট্যাগ) ব্যবহার করে অনুসন্ধানের শব্দগুলোকে ছোট হাতের অক্ষরে পরিবর্তন করে অনুসন্ধান করতে হয়। দ্রষ্টব্য: যেহেতু কিছু শব্দ (যেমন "কমেডি") একটি ইউটিউব বিভাগ এবং একটি কীওয়ার্ড উভয়ই হতে পারে, তাই বিভাগ এবং কীওয়ার্ড ক্যোয়ারীগুলি এই নিয়মটি ব্যবহার করে যে একটি বড় হাতের শব্দ ("কমেডি") একটি YouTube বিভাগকে বোঝায়, যেখানে একটি ছোট হাতের শব্দ ("কমেডি") ") একটি কীওয়ার্ড বোঝায়।

def SearchAndPrintVideosByKeywords(list_of_search_terms):
  yt_service = gdata.youtube.service.YouTubeService()
  query = gdata.youtube.service.YouTubeVideoQuery()
  query.orderby = 'viewCount'
  query.racy = 'include'
  for search_term in list_of_search_terms:
    new_term = search_term.lower()
    query.categories.append('/%s' % new_term)
  feed = yt_service.YouTubeQuery(query)
  PrintVideoFeed(feed)

বিকাশকারী ট্যাগ দ্বারা অনুসন্ধান

বিকাশকারী ট্যাগগুলি অতিরিক্ত, লুকানো কীওয়ার্ড যা একজন বিকাশকারী শেষ ব্যবহারকারীদের দ্বারা তাদের অ্যাপ্লিকেশনের মাধ্যমে আপলোড করা সামগ্রী ট্যাগ করতে ব্যবহার করতে পারে। ডেভেলপার ট্যাগ আপলোডের সময় হেডারে সেট করা ডেভেলপার কী-এর সাথে মিলে যায়। এই কীওয়ার্ডগুলি জনসাধারণের কাছে দৃশ্যমান হবে না এবং ভিডিওগুলি পুনরুদ্ধার করতে ব্যবহার করা হতে পারে৷ একটি নির্দিষ্ট বিকাশকারী ট্যাগ দ্বারা ভিডিওগুলি অনুসন্ধান করতে, আপনার বিকাশকারী কী ব্যবহার করে একটি সাধারণ YouTube ডেটা API অনুসন্ধান অনুরোধ পাঠান৷ ভিডিওগুলি অবশ্যই মেলে এমন বিভাগ স্কিম এবং বিকাশকারী ট্যাগ নির্দিষ্ট করতে ভুলবেন না৷ আপনি নীচের URL থেকে আপনার ডেভেলপার ট্যাগের (আমাদের উদাহরণে 'your_tag_here') সাথে মিলে যাওয়া ভিডিওগুলির একটি ফিড পুনরুদ্ধার করতে পারেন:

developer_tag_uri = 'http://gdata.youtube.com/feeds/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com%2Fschemas%2F2007%2Fdevelopertags.cat%7Dyour_tag_here'
yt_service = gdata.youtube.service.YouTubeService()
PrintVideoFeed(yt_service.GetYouTubeVideoFeed(developer_tag_uri))

ভিডিও আপলোড করা হচ্ছে

আপলোড প্রক্রিয়ার উচ্চ-স্তরের ওভারভিউয়ের জন্য অনুগ্রহ করে প্রোটোকল গাইডে ডায়াগ্রামগুলি পর্যালোচনা করা নিশ্চিত করুন৷ ভিডিও আপলোড করা দুটি উপায়ে করা যেতে পারে:

  • হয় সরাসরি আপলোড পদ্ধতির মাধ্যমে আপনার সার্ভার থেকে সরাসরি ভিডিও আপলোড করে
  • অথবা প্রথমে মেটা-ডেটা পাঠিয়ে এবং তারপর ব্যবহারকারীকে ব্রাউজার-ভিত্তিক আপলোড পদ্ধতির মাধ্যমে সরাসরি YouTube-এ ভিডিও আপলোড করার মাধ্যমে

সরাসরি আপলোড

একটি ভিডিও আপলোড করার জন্য, আপনাকে প্রথমে একটি নতুন gdata.youtube.YouTubeVideoEntry অবজেক্ট তৈরি করতে হবে, এটিকে একটি gdata.media.Group অবজেক্টে পাস করে প্রয়োজনীয় মেটা-ডেটা রয়েছে৷ নিম্নলিখিত উদাহরণে নিম্নলিখিত বৈশিষ্ট্যগুলির সাথে YouTube-এ কুইকটাইম ভিডিও "mytestmovie.mov" আপলোড করা দেখায়:

সম্পত্তি মান
শিরোনাম আমার টেস্ট মুভি
শ্রেণী অটোস
কীওয়ার্ড গাড়ি, মজার
বর্ণনা আমার বর্ণনা
ফাইলের নাম mytestmovie.mov
ফাইল MIME প্রকার ভিডিও/কুইকটাইম
ভিডিও ব্যক্তিগত? মিথ্যা
ভিডিও অবস্থান 37,-122 (অক্ষাংশ, দীর্ঘ)
বিকাশকারী ট্যাগ mydevelopertag, আরেকটি ডেভেলপারট্যাগ

নিচের কোডটি আপলোড করার জন্য একটি ফাঁকা YouTubeVideoEntry তৈরি করে। YouTubeService InsertVideoEntry পদ্ধতির জন্য নিম্নলিখিত পরামিতিগুলির প্রয়োজন:

  • video_entry — মেটা-ডেটা ধারণকারী gdata.youtube.VideoEntry অবজেক্ট
  • filename_or_handle — একটি ফাইলের মতো বস্তু বা ফাইলের নাম যেখান থেকে ভিডিওটি পড়া হবে
  • youtube_username — এই ভিডিওটি কোন অ্যাকাউন্টে আপলোড করা হবে তা ব্যবহারকারীর নাম উল্লেখ করে একটি ঐচ্ছিক স্ট্রিং। আপনার অ্যাকাউন্টের অবশ্যই যথাযথ অনুমতির প্রয়োজন হবে। এটি বর্তমানে প্রমাণীকৃত ব্যবহারকারীর অ্যাকাউন্টে ডিফল্ট।
  • content_type — আপলোড করা ভিডিওর MIME-টাইপ নির্দিষ্ট করে একটি ঐচ্ছিক স্ট্রিং।
অনুগ্রহ করে মনে রাখবেন যে এই উদাহরণগুলি অনুমান করে যে yt_service ভেরিয়েবল একটি সম্পূর্ণ প্রমাণীকৃত YouTubeService অবজেক্টকে বোঝায়।

# prepare a media group object to hold our video's meta-data
my_media_group = gdata.media.Group(
  title=gdata.media.Title(text='My Test Movie'),
  description=gdata.media.Description(description_type='plain',
                                      text='My description'),
  keywords=gdata.media.Keywords(text='cars, funny'),
  category=[[]gdata.media.Category(
      text='Autos',
      scheme='http://gdata.youtube.com/schemas/2007/categories.cat',
      label='Autos')],
  player=None
)


# prepare a geo.where object to hold the geographical location
# of where the video was recorded
where = gdata.geo.Where()
where.set_location((37.0,-122.0))

# create the gdata.youtube.YouTubeVideoEntry to be uploaded
video_entry = gdata.youtube.YouTubeVideoEntry(media=my_media_group,
                                              geo=where)

# set the path for the video file binary
video_file_location = '/path/to/my/file.mov'

new_entry = yt_service.InsertVideoEntry(video_entry, video_file_location)

যদি আমরা আমাদের ভিডিওটিকে ঐচ্ছিক বিকাশকারী ট্যাগগুলির সাথে ট্যাগ করতে চাই (আরো বিশদ বিবরণের জন্য বিকাশকারী ট্যাগ দ্বারা অনুসন্ধান দেখুন), আমরা InsertVideoEntry তে কল করার আগে AddDeveloperTags পদ্ধতি ব্যবহার করতে পারতাম:

developer_tags = [[]'some_tag_01', 'another_tag']
video_entry.AddDeveloperTags(developer_tags)

দ্রষ্টব্য: ভিডিওগুলিকে ব্যক্তিগত হিসাবে আপলোড করতে, একটি ব্যক্তিগত বৈশিষ্ট্য অবশ্যই gdata.media.Group এ পাস করতে হবে:

my_media_group = gdata.media.Group(
  title=gdata.media.Title(text='My Test Movie'),
  description=gdata.media.Description(description_type='plain',
                                      text='My description'),
  keywords=gdata.media.Keywords(text='cars, funny'),
  category=[[]gdata.media.Category(
      text='Autos',
      scheme='http://gdata.youtube.com/schemas/2007/categories.cat',
      label='Autos')],
  player=None,
  private=gdata.media.Private()
)

video_entry = gdata.youtube.YouTubeVideoEntry(media=my_media_group)

# assuming that video_file_location points to a valid path
new_entry = yt_service.InsertVideoEntry(video_entry, video_file_location)

ব্রাউজার ভিত্তিক আপলোড

ব্রাউজার-ভিত্তিক আপলোডিং সরাসরি আপলোডিংয়ের জন্য প্রায় অভিন্নভাবে সঞ্চালিত হয়, আপনি ভিডিও মেটা-ডেটা পাঠানোর জন্য যে অনুরোধটি ব্যবহার করেন সেই একই অনুরোধে আপনি আপনার ফাইল বাইনারি আপলোড করবেন না। পরিবর্তে, আপনি কেবল একটি YouTubeVideoEntry তৈরি করুন যাতে শুধুমাত্র মেটা-ডেটা থাকে। এই ভিডিও এন্ট্রি তারপর YouTube API সার্ভারে একটি বিশেষ লিঙ্কে পোস্ট করা হয়। XML প্রতিক্রিয়াতে একটি token এবং একটি url থাকে যা তারপর একটি আদর্শ HTML ফর্ম ব্যবহার করে বাইনারি ফাইল আপলোড করতে ব্যবহার করা যেতে পারে।

# create media group as usual
my_media_group = gdata.media.Group(
  title=gdata.media.Title(text='My Test Movie'),
  description=gdata.media.Description(description_type='plain',
                                      text='My description'),
  keywords=gdata.media.Keywords(text='cars, funny'),
  category=[[]gdata.media.Category(
      text='Autos',
      scheme='http://gdata.youtube.com/schemas/2007/categories.cat',
      label='Autos')],
  player=None
)

# create video entry as usual
video_entry = gdata.youtube.YouTubeVideoEntry(media=my_media_group)

# upload meta data only
response = yt_service.GetFormUploadToken(video_entry)

# parse response tuple and use the variables to build a form (see next code snippet)
post_url = response[[]0]
youtube_token = response[[]1]

উপরের কোডটি একটি লিঙ্ক এবং একটি টোকেন প্রিন্ট করে যা ব্যবহারকারীর ব্রাউজারে প্রদর্শনের জন্য একটি HTML ফর্ম তৈরি করতে ব্যবহৃত হয়। একটি সাধারণ উদাহরণ ফর্ম নীচে দেখানো হয়েছে youtube_token সহ প্রত্যাবর্তিত টোকেন উপাদানের বিষয়বস্তু প্রতিনিধিত্ব করে, যেমনটি উপরে YouTubeVideoEntry থেকে পুনরুদ্ধার করা হয়েছে। ফর্ম জমা দেওয়ার পরে ব্যবহারকারীকে আপনার ওয়েবসাইটে পুনঃনির্দেশিত করার জন্য, post_url এ একটি next প্যারামিটার যুক্ত করা নিশ্চিত করুন (নিচে দেখানো হয়েছে), যা একটি AuthSub লিঙ্কের next প্যারামিটারের মতোই কাজ করবে। শুধুমাত্র পার্থক্য হল এখানে, একটি একক-ব্যবহারের টোকেনের পরিবর্তে, একটি status এবং একটি id ভেরিয়েবল URL প্যারামিটার হিসাবে ফেরত দেওয়া হয়৷

next = 'http://example.com/post_video_upload.pyc'

form = """<form action="%s?nexturl=%s" method="post" enctype="multipart/form-data">
          <input name="file" type="file"/>
          <input name="token" type="hidden" value="%s"/>
          <input value="Upload Video File" type="submit" />
          </form>""" % (post_url, next, youtube_token)

একটি সফল আপলোডের জন্য একটি প্রতিক্রিয়া তারপর এই মত দেখাবে:

http://example.com/post_video_upload.pyc?status=200&id=ABC123

status প্যারামিটার আপলোড লেনদেনের HTTP লেনদেনের স্থিতি প্রদান করে। id প্যারামিটারটি YouTube ভিডিও আইডি প্রদান করে যা আপলোড করা ভিডিওতে বরাদ্দ করা হয়েছিল।

আপলোড স্থিতি পরীক্ষা করা হচ্ছে

একটি ভিডিও আপলোড করার পরে, এটি অবিলম্বে একটি প্রমাণীকৃত ব্যবহারকারীর আপলোড ফিডে দৃশ্যমান হবে৷ যাইহোক, এটি প্রক্রিয়া না হওয়া পর্যন্ত এটি সাইটে সর্বজনীন হবে না। যে ভিডিওগুলি প্রত্যাখ্যান করা হয়েছে বা সফলভাবে আপলোড করতে ব্যর্থ হয়েছে সেগুলি শুধুমাত্র প্রমাণীকৃত ব্যবহারকারীর আপলোড ফিডে থাকবে৷ নিচের কোডটি একটি YouTubeVideoEntry এর স্থিতি পরীক্ষা করে দেখতে এটি এখনও লাইভ নয় বা এটি প্রত্যাখ্যান করা হয়েছে কিনা।

upload_status = yt_service.CheckUploadStatus(new_entry)

if upload_status is not None:
  video_upload_state = upload_status[[]0]
  detailed_message = upload_status[[]1]

ভিডিও আপডেট করা এবং মুছে ফেলা হচ্ছে

ভিডিও তথ্য আপডেট করা হচ্ছে

ভিডিও মেটা-ডেটা আপডেট করতে, শুধু YouTubeVideoEntry অবজেক্ট আপডেট করুন এবং তারপর YouTubeService অবজেক্টের UpdateVideoEntry পদ্ধতি ব্যবহার করুন। এই পদ্ধতিটি একটি YouTubeVideoEntry একটি প্যারামিটার হিসাবে নেয় যাতে আপডেট করা মেটা-ডেটা থাকে।

# assuming we have a video entry that was just posted in our 'new_entry' variable
new_entry.media.title.text = 'My Updated Video Title'
new_entry.media.description.text = 'Just updated'

updated_entry = yt_service.UpdateVideoEntry(new_entry)

একটি ভিডিও মুছে ফেলা হচ্ছে

একটি ভিডিও মুছে ফেলা খুবই সহজ এবং শুধুমাত্র YouTubeService অবজেক্টের DeleteVideoEntry এ একটি কল জড়িত৷

response = yt_service.DeleteVideoEntry(entry_to_be_deleted)

if response:
  print 'Video successfully deleted!'

সম্প্রদায় বৈশিষ্ট্য ব্যবহার করে

একটি রেটিং যোগ করা হচ্ছে

একটি ভিডিও রেট দিতে, YouTubeService অবজেক্টের AddRating পদ্ধতি ব্যবহার করুন। দয়া করে মনে রাখবেন যে আপনি আপনার নিজের ভিডিও রেট করতে পারবেন না এবং সেই রেটিং 1 থেকে 5 এর মধ্যে হতে হবে (অন্তর্ভুক্ত):

video_id_to_rate = 'Ncakifd_16k'
video_entry = yt_service.GetYouTubeVideoEntry(video_id=video_id_to_rate)
response = yt_service.AddRating(3, video_entry)

মন্তব্য

একটি ভিডিওর জন্য মন্তব্য পুনরুদ্ধার করা হচ্ছে

একটি YouTubeVideoEntry অবজেক্ট বা একটি সাধারণ ভিডিও আইডি দেওয়া হলে, আপনি YouTubeService অবজেক্টের GetYouTubeVideoCommentFeed পদ্ধতি ব্যবহার করে ভিডিওটির জন্য মন্তব্য সম্বলিত একটি ফিড পুনরুদ্ধার এবং মুদ্রণ করতে পারেন। ফলস্বরূপ ফিড হল একটি gdata.youtube.YouTubeCommentFeed , যা gdata.youtube.YouTubeCommentEntry অবজেক্ট নিয়ে গঠিত। অন্যান্য ফিডের মত ফিড পার্স করা যেতে পারে:

video_id = 'ABC123...'
comment_feed = yt_service.GetYouTubeVideoCommentFeed(video_id=video_id)

for comment_entry in comment_feed.entry:
  print comment_entry.ToString()

একটি মন্তব্য যোগ করা হচ্ছে

একটি নতুন মন্তব্য যোগ করতে, সহজভাবে YouTubeService অবজেক্টের AddComment পদ্ধতি ব্যবহার করুন। পদ্ধতিটির জন্য একটি সম্পূর্ণ YouTubeVideoEntry অবজেক্টের প্রয়োজন যা মন্তব্য করতে হবে, সেইসাথে একটি স্ট্রিং যা মন্তব্যের প্রতিনিধিত্ব করে:

my_comment = 'what a boring test video'
video_id = '9g6buYJTt_g'
video_entry = yt_service.GetYouTubeVideoEntry(video_id=video_id)
yt_service.AddComment(comment_text=my_comment, video_entry=video_entry)

ভিডিও প্রতিক্রিয়া

একটি YouTube ভিডিও প্রতিক্রিয়া ছিল একটি ভিডিও যা একটি উত্তর হিসাবে, একটি দ্বিতীয় ভিডিওর সাথে যুক্ত ছিল৷ এই ঘোষণায় ব্যাখ্যা করা ভিডিও প্রতিক্রিয়া বৈশিষ্ট্যটি অবসর দেওয়া হয়েছে। যদিও বিদ্যমান ভিডিও প্রতিক্রিয়াগুলি এখনও উপলব্ধ রয়েছে, YouTube আর একটি ভিডিওর জন্য ভিডিও প্রতিক্রিয়াগুলির একটি তালিকা পুনরুদ্ধার করার ক্ষমতাকে সমর্থন করে না, নতুন ভিডিও প্রতিক্রিয়াগুলি আপলোড করতে বা ভিডিও প্রতিক্রিয়াগুলি মুছতে পারে, যদিও আপনি ভিডিও প্রতিক্রিয়াতে ব্যবহৃত ভিডিওটি মুছতে পারেন৷ . ফলস্বরূপ, এই ফাংশনগুলিও আর API-তে সমর্থিত নয়।

ভিডিও প্রতিক্রিয়া ক্রিয়াকলাপের জন্য API অনুরোধগুলি এখন নিম্নলিখিতগুলি ফেরত দেয়:

  • একটি ভিডিওর জন্য ভিডিও প্রতিক্রিয়া পুনরুদ্ধার করার অনুরোধ একটি খালি তালিকা প্রদান করে৷
  • একটি ভিডিও প্রতিক্রিয়া যোগ করার অনুরোধ একটি 403 HTTP প্রতিক্রিয়া কোড প্রদান করে৷
  • একটি ভিডিও প্রতিক্রিয়া মুছে ফেলার অনুরোধ একটি 403 HTTP প্রতিক্রিয়া কোড প্রদান করে৷

একটি ভিডিও পতাকাঙ্কিত

YouTubeService অবজেক্টে AddComplaint পদ্ধতির মাধ্যমে একটি ভিডিও সম্পর্কে অভিযোগ যোগ করা হয়। অভিযোগ শব্দটি একটি বৈধ বিভাগ হতে হবে। আরও তথ্যের জন্য অনুগ্রহ করে প্রোটোকল গাইডে অভিযোগ যোগ করা বিভাগটি পড়ুন।

video_id_to_flag = 'Ncakifd_16k'
complaint_term = 'VIOLENCE'
complaint_text = ('Please ignore this complaint. '
                  'I\'m testing a YouTube API and needed to issue '
                  'a complaint to test the add complaint function. ')

response = yt_service.AddComplaint(complaint_text, complaint_term, video_id_to_flag)

ভিডিও সংরক্ষণ এবং সংগ্রহ

প্রিয় ভিডিও

একজন ব্যবহারকারীর প্রিয় ভিডিও পুনরুদ্ধার করা হচ্ছে

ইউটিউব ব্যবহারকারীরা পছন্দসই হিসাবে দেখেন এমন ভিডিওগুলি চিহ্নিত করতে বেছে নিতে পারেন৷ ব্যবহারকারীর প্রিয় ফিডের জন্য সাধারণ অবস্থান হল নিম্নলিখিত URL।

http://gdata.youtube.com/feeds/api/users/username/favorites

ব্যবহারকারীর প্রিয় ভিডিওগুলি পুনরুদ্ধার করতে, YouTubeService অবজেক্টের GetUserFavoritesFeed পদ্ধতি ব্যবহার করুন৷ পদ্ধতিটি একটি প্যারামিটার হিসাবে একটি ঐচ্ছিক স্ট্রিং নেয় যা ব্যবহারকারীর ইউটিউব ব্যবহারকারীর নাম উপস্থাপন করে যার প্রিয় ফিডটি পুনরুদ্ধার করা হবে৷

favorite_feed = yt_service.GetUserFavoritesFeed(username='gdpython')

প্রত্যাবর্তিত ফিডটি একটি নিয়মিত ভিডিও ফিড, যেখানে YouTubeVideoEntry অবজেক্ট রয়েছে।

দ্রষ্টব্য: বিকল্পভাবে, আপনি বর্তমানে প্রমাণীকৃত ব্যবহারকারীর জন্য পছন্দগুলি পুনরুদ্ধার করতে স্ট্রিং default পাস করতে পারেন। এটি GetUserFavoritesFeed পদ্ধতির ডিফল্ট আচরণ যদি কোনো ব্যবহারকারীর নাম প্রদান করা না হয়।

একটি প্রিয় যোগ করা হচ্ছে

একটি প্রিয় ভিডিও যোগ করতে YouTubeService অবজেক্টের AddVideoEntryToFavorites পদ্ধতি ব্যবহার করুন। পরামিতি হল YouTubeVideoEntry যা যোগ করা হবে এবং ঐচ্ছিকভাবে ব্যবহারকারীর নাম যার পছন্দের সাথে এটি যোগ করা হবে (ডিফল্টটি বর্তমানে প্রমাণীকৃত ব্যবহারকারী)।

video_id = 'Ncakifd_16k'
video_entry = yt_service.GetYouTubeVideoEntry(video_id=video_id)
response = yt_service.AddVideoEntryToFavorites(video_entry)

# The response, if successfully posted is a YouTubeVideoEntry
if isinstance(response, gdata.youtube.YouTubeVideoEntry):
  print 'Video successfully added to favorites'

একটি প্রিয় মুছে ফেলা হচ্ছে

একটি প্রিয় মুছে ফেলতে, YouTubeService অবজেক্টের DeleteVideoEntryFromFavorites পদ্ধতি ব্যবহার করুন।

video_id = 'Ncakifd_16k'
response = yt_service.DeleteVideoEntryFromFavorites(video_id)
if response is True:
  print 'Video deleted from favorites'

প্লেলিস্ট

প্রতিটি YouTube ব্যবহারকারীর একটি প্লেলিস্ট ফিড থাকে যাতে ব্যবহারকারীর তৈরি করা সমস্ত প্লেলিস্ট থাকে৷ প্রতিটি প্লেলিস্টে তারপরে এটিতে থাকা সমস্ত ভিডিওগুলির জন্য একটি ফিড থাকে৷

ব্যবহারকারীর প্লেলিস্ট পুনরুদ্ধার করা হচ্ছে

একটি ব্যবহারকারীর সমস্ত প্লেলিস্টের একটি তালিকা হাতে নিয়ে আনতে, আপনি নিম্নলিখিত URL ব্যবহার করবেন:

http://gdata.youtube.com/feeds/api/users/username/playlists

পাইথন ক্লায়েন্ট লাইব্রেরি ব্যবহার করে, আপনি YouTubeService অবজেক্টের GetYouTubePlaylistFeed পদ্ধতি ব্যবহার করতে পারেন:

playlist_feed = yt_service.GetYouTubePlaylistFeed(username='gdpython')

# instead of passing in a username, you can also pass the URI to the playlist feed:
playlist_feed = yt_service.GetYouTubePlaylistFeed(uri='http://gdata.youtube.com/feeds/api/users/default/playlists')

দ্রষ্টব্য: একটি নির্দিষ্ট ব্যবহারকারীর নাম পাস করার পরিবর্তে (যেমন উপরের উদাহরণে 'gdpython'), আপনি বর্তমানে প্রমাণীকৃত ব্যবহারকারীকে উল্লেখ করতে স্ট্রিং 'default' এও পাস করতে পারেন।

একটি gdata.youtube.YouTubePlaylistFeed gdata.youtube.YouTubePlaylistEntry অবজেক্টের একটি ফিড উপস্থাপন করে। এগুলি একজন ব্যবহারকারীর থাকতে পারে এমন পৃথক প্লেলিস্টগুলিকে নির্দেশ করে৷ একটি নির্দিষ্ট প্লেলিস্টে ভিডিও এন্ট্রিগুলি gdata.youtube.YouTubePlaylistVideoEntry অবজেক্ট হিসাবে উপস্থাপন করা হয়৷ এই অবজেক্টগুলি কিছু ব্যতিক্রম সহ নিয়মিত gdata.youtube.YouTubeVideoEntry অবজেক্টের সাথে খুব মিল। কাস্টম শিরোনাম এবং বিবরণ ভিডিওগুলিতে প্রয়োগ করা যেতে পারে এবং একটি অবস্থান ক্ষেত্র নির্দেশ করে যেখানে ভিডিওটি প্লেলিস্টে প্রদর্শিত হবে৷

প্লেলিস্ট তথ্য পুনরুদ্ধার করা হচ্ছে

একটি YouTubePlaylistEntry দেওয়া (একটি নির্দিষ্ট প্লেলিস্টের প্রতিনিধিত্ব করে), আপনি একটি YouTubePlaylist Video Feed পেতে পারেন যাতে YouTubePlaylistVideoEntry অবজেক্ট থাকে। যেমন উপরে ব্যাখ্যা করা হয়েছে, এই বস্তুগুলি একটি প্লেলিস্টে পৃথক ভিডিও উপস্থাপন করে (ঐচ্ছিক কাস্টম শিরোনাম এবং বিবরণ সহ)। আপনি YouTubeService অবজেক্টের GetYouTubePlaylistVideoFeed পদ্ধতিতে আপনার প্লেলিস্টের URI পাস করে এই ফিডটি পেতে পারেন:

# a typical playlist URI
playlist_uri = 'http://gdata.youtube.com/feeds/api/playlists/BCB3BB96DF51B505'

playlist_video_feed = yt_service.GetYouTubePlaylistVideoFeed(uri=playlist_uri)

# iterate through the feed as you would with any other
for playlist_video_entry in playlist_video_feed.entry:
  print playlist_video_entry.title.text

একটি প্লেলিস্ট যোগ করা হচ্ছে

একটি নতুন প্লেলিস্ট যোগ করতে, YouTubeService অবজেক্টের AddPlaylist পদ্ধতিটি ব্যবহার করুন। এই পদ্ধতিটি নিম্নলিখিত পরামিতিগুলি নেয়: প্লেলিস্ট_টাইটেল, প্লেলিস্ট_ডেসক্রিপশন (উভয় স্ট্রিং) এবং একটি ঐচ্ছিক বুলিয়ান যা True সেট করা যেতে পারে যদি প্লেলিস্টটিকে ব্যক্তিগত হিসাবে চিহ্নিত করতে হয়।

new_public_playlistentry = yt_service.AddPlaylist('my new playlist', 'a new playlist')

if isinstance(new_public_playlistentry, gdata.youtube.YouTubePlaylistEntry):
  print 'New playlist added'

# adding a private playlist
new_private_playlistentry = yt_service.AddPlaylist('new private playlist', 'a new private playlist', True)

if isinstance(new_private_playlistentry, gdata.youtube.YouTubePlaylistEntry):
  print 'New private playlist added'

একটি প্লেলিস্ট আপডেট করা হচ্ছে

একটি প্লেলিস্ট আপডেট করতে, YouTubeService অবজেক্টের UpdatePlaylist পদ্ধতি ব্যবহার করুন। পদ্ধতিটি নিম্নলিখিত পরামিতিগুলি নেয়: আপডেট করা প্লেলিস্টের আইডি, একটি নতুন শিরোনাম, একটি নতুন বিবরণ, প্লেলিস্ট ব্যক্তিগত চিহ্নিত করার জন্য একটি ঐচ্ছিক বুলিয়ান এবং প্লেলিস্টের মালিক ব্যবহারকারীর নাম নির্দেশ করে একটি ঐচ্ছিক স্ট্রিং৷ স্ট্রিংটি বর্তমানে প্রমাণীকৃত ব্যবহারকারীর কাছে ডিফল্ট হবে।

# here we are updating a public playlist with a new title while also making it private

# we assume that playlist_to_be_updated here represents a YouTubePlaylistEntry object
playlist_entry_id = playlist_to_be_updated.id.text.split('/')[[]-1]

# we want to keep the original description for the playlist so we store it first
original_description = playlist_to_be_updated.description.text

updated_playlist = yt_service.UpdatePlaylist(playlist_entry_id,
                                             'a new updated title',
                                             original_playlist_description,
                                             playlist_private=True)

প্লেলিস্টে ভিডিও যোগ করুন

আপনি YouTubeService অবজেক্টের AddPlaylistVideoEntryToPlaylist পদ্ধতি ব্যবহার করে একটি প্লেলিস্টে একটি ভিডিও যোগ করতে পারেন। নীচের কোডটি একটি কাস্টম শিরোনাম এবং বিবরণ সহ একটি প্লেলিস্টে একটি ভিডিও যুক্ত করে৷

custom_video_title = 'my test video on my test playlist'
custom_video_description = 'this is a test video on my test playlist'
video_id = 'Ncakifd_16k'
playlist_uri = 'http://gdata.youtube.com/feeds/api/playlists/BCB3BB96DF51B505'

playlist_video_entry = yt_service.AddPlaylistVideoEntryToPlaylist(
    playlist_uri, video_id, custom_video_title, custom_video_description)

if isinstance(playlist_video_entry, gdata.youtube.YouTubePlaylistVideoEntry):
  print 'Video added'

দ্রষ্টব্য: দয়া করে মনে রাখবেন যে একটি কাস্টম শিরোনাম এবং বিবরণের প্রয়োজন নেই, এবং যদি এগুলি নির্দিষ্ট না করা হয়, তাহলে ভিডিওটির প্রকৃত শিরোনাম এবং বিবরণ ব্যবহার করা হবে৷

প্লেলিস্টে ভিডিও তথ্য সম্পাদনা করুন

YouTubePlaylistVideoEntry এর মেটা-ডেটা পরিবর্তন করতে YouTubeService অবজেক্টের UpdatePlaylistVideoEntryMetaData পদ্ধতি ব্যবহার করুন। নীচের উদাহরণে আমরা আমাদের ভিডিওটিকে একটি নতুন কাস্টম শিরোনাম দেব এবং আমাদের প্লেলিস্টের প্রথম অবস্থানে (পজিশন 1) নিয়ে যাওয়ার সিদ্ধান্ত নিয়েছি৷

playlist_uri = 'http://gdata.youtube.com/feeds/api/playlists/BCB3BB96DF51B505'
playlist_entry_id = 'B0F29389E537F888'

new_video_title = 'a useful video'
new_video_description = 'updated video description'

updated_playlist_video_entry = yt_service.UpdatePlaylistVideoEntryMetaData(
    playlist_uri, playlist_entry_id, new_video_title, new_video_description, 1)

দ্রষ্টব্য: আপনি যদি একটি প্লেলিস্টে একটি ভিডিওর বিবরণ এবং শিরোনাম মূল মেটা-ডেটাতে ফিরিয়ে দিতে চান, তাহলে শিরোনাম এবং বিবরণ উভয়ের জন্যই NULL পাস করুন৷

প্লেলিস্ট থেকে ভিডিও সরান

একটি প্লেলিস্ট থেকে একটি ভিডিও সরাতে, YouTubeService অবজেক্টের DeletePlaylistVideoEntry পদ্ধতি ব্যবহার করুন৷ পদ্ধতিটির জন্য প্লেলিস্টের ইউআরআই প্রয়োজন যাতে এন্ট্রিটি মুছে ফেলার পাশাপাশি এন্ট্রির আইডি থাকে:

playlist_uri = 'http://gdata.youtube.com/feeds/api/playlists/BCB3BB96DF51B505'
playlist_entry_id = 'B0F29389E537F888'
response = yt_service.DeletePlaylistVideoEntry(playlist_uri,
                                               playlist_entry_id)
if response is True:
  print 'Entry successfully deleted'

একটি প্লেলিস্ট মুছে ফেলা হচ্ছে

একটি প্লেলিস্ট মুছে ফেলার জন্য, YouTubeService অবজেক্টের DeletePlaylist পদ্ধতিটি ব্যবহার করুন, মুছে ফেলার জন্য প্লেলিস্টের URI পাস করুন:

playlist_uri = 'http://gdata.youtube.com/feeds/api/playlists/BCB3BB96DF51B505'
response = yt_service.DeletePlaylist(playlist_uri)

if response is True:
  print 'Playlist successfully deleted'

সদস্যতা

একটি প্রদত্ত ব্যবহারকারীর সদস্যতা নেওয়া চ্যানেল, অনুসন্ধান এবং পছন্দের তালিকা আনতে, নিম্নলিখিত URI ব্যবহার করুন:

http://gdata.youtube.com/feeds/api/users/username/subscriptions

দ্রষ্টব্য: বিকল্পভাবে, আপনি বর্তমানে প্রমাণীকৃত ব্যবহারকারীর জন্য পছন্দগুলি পুনরুদ্ধার করতে স্ট্রিং default পাস করতে পারেন।

ব্যবহারকারীর সদস্যতা পুনরুদ্ধার করা হচ্ছে

নিম্নলিখিত কোডটি দেখায় কিভাবে একটি প্রদত্ত ব্যবহারকারীর জন্য সদস্যতার তালিকা পুনরুদ্ধার এবং মুদ্রণ করা যায়। সদস্যতাগুলিকে gdata.youtube.YouTubeSubscriptionFeed হিসাবে উপস্থাপন করা হয় যা gdata.youtube.YouTubeSubscriptionEntry অবজেক্ট নিয়ে গঠিত। সাবস্ক্রিপশন পুনরুদ্ধার করতে, YouTubeService অবজেক্টের GetYouTubeSubscriptionFeed পদ্ধতি ব্যবহার করুন, হয় একটি সাবস্ক্রিপশন ফিডের URI বা ব্যবহারকারীর নাম যার সদস্যতা ফিডটি পুনরুদ্ধার করা হবে। ব্যবহারকারীর নাম প্যারামিটারটি বর্তমানে প্রমাণীকৃত ব্যবহারকারীর কাছে ডিফল্ট।

subscription_feed = yt_service.GetYouTubeSubscriptionFeed(username='gdpython')

if isinstance(subscription_feed, gdata.youtube.YouTubeSubscriptionFeed)):
  # given a YouTubeSubscriptionEntry we can determine it's type (channel, favorite, or query)
  for entry in subscription_feed.entry:
    print entry.GetSubscriptionType()

একটি সদস্যতা যোগ করা হচ্ছে

আপনি প্রমাণীকৃত ব্যবহারকারীর সদস্যতা ফিডে একটি নতুন YouTubeSubsciptionEntry সন্নিবেশ করে একটি নতুন সদস্যতা তৈরি করতে পারেন৷ আমরা তিন ধরনের সাবস্ক্রিপশন তৈরি করতে পারি: একজন ব্যবহারকারীর চ্যানেলের সদস্যতা ( AddSubscriptionToChannel ব্যবহার করে), একজন ব্যবহারকারীর পছন্দের সদস্যতা ( AddSubscriptionToFavorites ব্যবহার করে বা একটি নির্দিষ্ট কীওয়ার্ডের সদস্যতা ( AddSubscriptionToQuery ব্যবহার করে)। নিম্নলিখিত কোডটি প্রমাণীকৃত ব্যবহারকারীকে " GoogleDevelopers" চ্যানেল।

new_subscription = yt_service.AddSubscriptionToChannel(
      username_to_subscribe_to='GoogleDevelopers')

if isinstance(new_subscription, gdata.youtube.YouTubeSubscriptionEntry):
  print 'New subscription added'

এছাড়াও আপনি "GoogleDevelopers" ব্যবহারকারীর পছন্দের সদস্যতা নিতে পারেন:

new_subscription = yt_service.AddSubscriptionToFavorites(
    username='GoogleDevelopers')
if isinstance(new_subscription, gdata.youtube.YouTubeSubscriptionEntry):
  print 'New subscription added'

শেষ অবধি, আপনি নির্দিষ্ট অনুসন্ধান পদগুলিতেও সদস্যতা নিতে পারেন। এখানে আমরা "পাইথন" ট্যাগ করা ভিডিওগুলির জন্য একটি প্রশ্নে সদস্যতা নিচ্ছি৷

new_subscription = yt_service.AddSubscriptionToQuery(query='python')

if isinstance(new_subscription, gdata.youtube.YouTubeSubscriptionEntry):
  print 'New subscription added'

একটি সদস্যতা মুছে ফেলা হচ্ছে

ব্যবহারকারীর সদস্যতা মুছে ফেলতে, YouTubeService অবজেক্টের DeleteSubscription পদ্ধতি ব্যবহার করুন।

sample_subscription_uri = ('http://gdata.youtube.com/feeds/api/users/'
                           'gdpython/subscriptions/c0c77ca6102a7479')

response = yt_service.DeleteSubscription(sample_subscription_uri)

if response is True:
  print 'Subscription successfully deleted'

ব্যবহারকারীর মিথস্ক্রিয়া সক্রিয় করা হচ্ছে

ব্যবহারকারীর প্রোফাইল

ব্যবহারকারীর প্রোফাইল পুনরুদ্ধার করা হচ্ছে

হাতে একজন ব্যবহারকারীর YouTube প্রোফাইল আনতে, আপনি নিম্নলিখিত URI ব্যবহার করবেন:

http://gdata.youtube.com/feeds/api/users/username

আপনি YouTubeService অবজেক্টের GetYouTubeUserEntry পদ্ধতির মাধ্যমে একটি gdata.youtube.YouTubeUserEntry পুনরুদ্ধার করতে পারেন।

user_entry = yt_service.GetYouTubeUserEntry(username='gdpython')

# we can then write a helper function to print out the user details
def PrintUserEntry(entry):
  # print required fields where we know there will be information
  print 'URI: %s\n' % entry.id.text
  print 'Age: %s\n' % entry.age.text
  print 'Gender: %s\n' % entry.gender.text
  print 'Location: %s\n' % entry.location.text

  # check if there is information in the other fields and if so print it
  if user.first_name: 
    print 'First Name: %s\n' % user.first_name.text
  if user.last_name:
    print 'Last Name: %s\n' % user.last_name.text
  if user.relationship:
    print 'Relationship: %s\n' % user.relationship.text
  if user.description:
    print 'About me: %s\n' % user.description.text
  for link in user.link:
    if link.rel == 'related':
      print 'Website: %s\n' % link.href
  if user.company:
    print 'Company: %s\n' % user.company.text
  if user.occupation:
    print 'Occupation: %s\n' % user.occupation.text
  if user.school:
    print 'School: %s\n' % user.school.text
  if user.hobbies:
    print 'Hobbies: %s\n' % user.hobbies.text
  if user.movies:
    print 'Movies: %s\n' % user.movies.text
  if user.music:
    print 'Music: %s\n' % user.music.text
  if user.books:
    print 'Books: %s\n' % user.books.text
  if user.hometown:
    print 'Hometown: %s\n' % user.hometown.text

পরিচিতি

একটি প্রদত্ত ব্যবহারকারীর পরিচিতির তালিকা নিম্নলিখিত URL থেকে পুনরুদ্ধার করা যেতে পারে:

http://gdata.youtube.com/feeds/api/users/username/contacts

ব্যবহারকারীর পরিচিতি পুনরুদ্ধার করা হচ্ছে

YouTubeService অবজেক্টের GetYouTubeContactFeed পদ্ধতিটি gdata.youtube.YouTubeContactEntry অবজেক্ট সমন্বিত একটি gdata.youtube.YouTubeContactFeed পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে।

contact_feed = yt_service.GetYouTubeContactFeed(username='GoogleDevelopers')
for entry in contact_feed.entry:
  print entry.title.text
  # find the apprpriate category element to find out the contact type
  for category in entry.category:
    if category.scheme == 'http://gdata.youtube.com/schemas/2007/contact.cat':
      print category.term

একটি পরিচিতি যোগ করা হচ্ছে

ব্যবহারকারীর পরিচিতি ফিডে একটি নতুন পরিচিতি যোগ করতে, YouTubeService অবজেক্টের AddContact পদ্ধতি ব্যবহার করুন।

new_contact = yt_service.AddContact(contact_username='GoogleDevelopers')

if isinstance(new_contact, gdata.youtube.YouTubeContactEntry)
  print 'New contact added'

একটি পরিচিতি গ্রহণ/প্রত্যাখ্যান করা

একটি পরিচিতি আপডেট করতে, YouTubeService অবজেক্টের UpdateContact পদ্ধতি ব্যবহার করুন। এই পদ্ধতিটি যোগাযোগের অনুরোধ গ্রহণ/প্রত্যাখ্যান করতে এবং পরিচিতিগুলিকে 'বন্ধু' বা 'পরিবার' হিসাবে শ্রেণীবদ্ধ করতে ব্যবহার করা যেতে পারে। নীচের উদাহরণে আমরা একটি পরিচিতি গ্রহণ করি এবং তারপরে এটির বিভাগটি 'পরিবার'-এ সেট করি:

# in this case user 'gdpython' has requested to be our contact
#so the original contact status is 'pending'
updated_contact = yt_service.UpdateContact('gdpython', 'accepted', 'Family')

if isinstance(updated_contact, gdata.youtube.YouTubeContactEntry)
  print 'New contact added'

একটি পরিচিতি মুছে ফেলা হচ্ছে

একটি পরিচিতি মুছে ফেলার জন্য, YouTubeService অবজেক্টের DeleteContact পদ্ধতিটি ব্যবহার করুন, আপনি যে পরিচিতিটি মুছতে চান তার ব্যবহারকারীর নাম দিয়ে যান৷

response = yt_service.DeleteContact(contact_username='gdpython')

if response is True:
  print 'Contact deleted'

উপরে ফিরে যাও