API অনুরোধের নমুনা

এই পৃষ্ঠায় YouTube Data API-তে পাঠানো অনুরোধের নমুনা দেখানো হয়েছে। ভিডিও, চ্যানেল ও প্লেলিস্টের মতো YouTube রিসোর্স রিট্রিভ ও ম্যানিপুলেট করতে আপনি YouTube Data API ব্যবহার করেন। প্রতিটি স্যাম্পেল Google APIs Explorer-এর সাথে লিঙ্ক করে এবং সেটি পূরণ করে যাতে আপনি স্যাম্পেলটি এক্সিকিউট করতে এবং উত্তর দেখতে পারেন।

YouTube Data API ব্যবহার করে কন্টেন্ট আপলোড করা সংক্রান্ত তথ্যের জন্য, আবার শুরু করা যায় এমন আপলোড দেখুন।

এক নজরে

উপস্থাপনার স্বচ্ছতার জন্য, এই পৃষ্ঠার স্যাম্পেলগুলি প্রতিটি অনুরোধের স্বতন্ত্র উপাদানগুলি দেখায় এবং হোস্টের জন্য বেস URL সংক্ষিপ্ত করে যা Data API অনুরোধগুলি (https://www.googleapis.com/youtube/v3) প্রসেস করে। স্যাম্পেলের প্রসঙ্গের বাইরে অনুরোধ করতে, আপনাকে সম্পূর্ণ URL অন্তর্ভুক্ত করতে হবে।

যেমন, এই পৃষ্ঠায় দেখানো অনুরোধের একটি স্যাম্পেল এখানে দেওয়া হল:

GET {base-URL}/channels?part=contentDetails
                       &mine=true

এই অনুরোধের সম্পূর্ণ URL হল:

GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails
                                                  &mine=true

অনেক অনুরোধ এমন ডেটা পুনরুদ্ধার করে যা শুধুমাত্র YouTube চ্যানেলের মালিকের কাছে অ্যাক্সেসযোগ্য, যেমন সাবস্ক্রাইবারদের তালিকা। এইসব অনুরোধের জন্য চ্যানেল মালিককে Google APIs Explorer-কে তার হয়ে YouTube Data API অনুরোধ করার অধিকার দিতে হয়। (ব্যক্তিগত চ্যানেল ডেটায় অ্যাক্সেস অনুমোদন করার ব্যাপারে বিস্তারিত জানতে OAuth 2.0 যাচাইকরণ প্রয়োগ করা দেখুন।) API এক্সপ্লোরারের সাথে লিঙ্ক করার পরে, OAuth 2.0 ব্যবহার করে অনুরোধ অনুমোদন করুন বোতামে ক্লিক করুন। এই ধাপটি মালিকের হয়ে অনুরোধ করার জন্য APIs Explorer-কে অনুমতি দেয়। এছাড়াও, আপনি অনুমোদনের স্কোপ বেছে নেন, যা API এক্সপ্লোরার কী ধরনের অনুরোধ করতে পারবে তা নির্দিষ্ট করে।

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

  • স্নিপেট
  • contentDetails
  • খেলোয়াড়
  • স্ট্যাটটিসটিক্সস
  • স্ট্যাটাস

এইসব অংশের সবকটিই হল অবজেক্ট যাতে নেস্টেড প্রপার্টি থাকে এবং আপনি এইসব অবজেক্টকে মেটাডেটা ফিল্ডের গ্রুপ হিসেবে ভাবতে পারেন যা API সার্ভার ফিরিয়ে আনতে পারে (বা নাও পারে)। তাই, part প্যারামিটারের জন্য আপনার অ্যাপ্লিকেশন আসলে ব্যবহার করে এমন রিসোর্স কম্পোনেন্ট বেছে নিতে হবে। আরও তথ্যের জন্য YouTube Data API ব্যবহার শুরু করা দেখুন।

চ্যানেল সংক্রান্ত তথ্য ফিরিয়ে আনা

এই অনুরোধ channels.list পদ্ধতি ব্যবহার করে যাচাই করা ব্যবহারকারীর চ্যানেলের বিবরণ খুঁজে বের করে।

GET {base_URL}/channels?part=contentDetails
                       &mine=true

এই অনুরোধের উত্তরে যাচাই করা ব্যবহারকারীর চ্যানেলের জন্য চ্যানেল আইডি ও contentDetails অন্তর্ভুক্ত থাকে। contentDetails-এ চ্যানেলের সাথে যুক্ত সিস্টেম-জেনারেটেড একাধিক প্লেলিস্ট অন্তর্ভুক্ত থাকে। পরবর্তী অনেক অনুরোধের জন্য চ্যানেল আইডি বা প্লেলিস্ট আইডিগুলির মধ্যে একটির প্রয়োজন হয়, তাই সেগুলি রেকর্ড করা গুরুত্বপূর্ণ।

{
  "id": {CHANNEL_ID},
  "kind": "youtube#channel",
  "etag": etag,
  "contentDetails": {
    "relatedPlaylists": {
      "likes": {LIKES_PLAYLIST_ID},
      "favorites": {FAVORITES_PLAYLIST_ID},
      "uploads": {UPLOADS_PLAYLIST_ID},
      "watchHistory": {WATCHHISTORY_PLAYLIST_ID},
      "watchLater": {WATCHLATER_PLAYLIST_ID}
    },
    "googlePlusUserId": string
  },
}

আপলোড করা ভিডিও এবং সিস্টেম-জেনারেটেড প্লেলিস্ট

YouTube চ্যানেলের সাথে যুক্ত প্লেলিস্টে আপলোড করা সব ভিডিও যোগ করে। আপলোড করা ভিডিওর তালিকা পেতে, চ্যানেল সংক্রান্ত তথ্যের জন্য উপরে দেখানো উত্তরে ফিরে আসা "আপলোড" প্লেলিস্ট কোয়েরি করুন। এই প্লেলিস্টে থাকা ভিডিওগুলি পেতে playlistItems.list পদ্ধতি ব্যবহার করুন।

Google APIs Explorer-এ নিম্নলিখিত নমুনা অনুরোধটি কার্যকর করার আগে, আগের অনুরোধ থেকে পাওয়া প্লেলিস্ট আইডি দিয়ে {UPLOADS_PLAYLIST_ID} পরিবর্তন করুন।

GET {base_URL}/playlistItems?part=contentDetails
                            &playlistId={UPLOADS_PLAYLIST_ID}

মনে রাখবেন, ফেরত আসা প্রতিটি আইটেমের "id" ভ্যালু হল তার playlistItem আইডি। প্লেলিস্ট আইটেমের ভিডিও আইডি হল contentDetails অংশের videoId।

চ্যানেল তথ্য সংক্রান্ত রেসপন্স থেকে সংশ্লিষ্ট প্লেলিস্ট আইডি পরিবর্তন করে উপরের অনুরোধ ব্যবহার করে আপনি কোনও ব্যবহারকারীর পছন্দের, লাইক করা, দেখার ইতিহাস বা পরে দেখার তালিকার তথ্য ফিরিয়ে আনতে পারবেন।

ব্যবহারকারীর তৈরি করা প্লেলিস্ট

এই অনুরোধটি যাচাইকৃত চ্যানেলের সাথে যুক্ত প্লেলিস্ট পাওয়ার জন্য playlists.list পদ্ধতি ব্যবহার করে। মনে রাখবেন, এই অনুরোধের মাধ্যমে চ্যানেল সংক্রান্ত তথ্যে (আপলোড, দেখার ইতিহাস ইত্যাদি) অন্তর্ভুক্ত সিস্টেম-জেনারেটেড প্লেলিস্ট ফিরিয়ে আনা যায় না। এটি শুধুমাত্র ব্যবহারকারীর তৈরি করা প্লেলিস্ট রিট্রিভ করে।

GET {base_URL}/playlists?part=snippet
                        &mine=true

প্লেলিস্ট আইডি পাওয়ার পরে, আগের বিভাগে দেখানো অনুরোধ ব্যবহার করে প্লেলিস্ট থেকে আইটেমগুলি ফিরিয়ে আনতে পারবেন।

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

GET {base_URL}/playlists?part=snippet
                        &channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw
                        &key={YOUR_API_KEY}

সাবস্ক্রিপশন ফিরিয়ে আনা

subscription রিসোর্স YouTube ব্যবহারকারী (সাবস্ক্রাইবার) ও চ্যানেলের মধ্যে সম্পর্ককে সংজ্ঞায়িত করে। আপনি অনুরোধে কোন প্যারামিটার অন্তর্ভুক্ত করেছেন তার উপর নির্ভর করে subscriptions.list পদ্ধতিটি কোনও নির্দিষ্ট চ্যানেলের সাবস্ক্রাইবার বা কোনও নির্দিষ্ট ব্যবহারকারীর সাবস্ক্রিপশন ফিরিয়ে আনে।

চ্যানেলের সদস্যগণ

এই অনুরোধ যাচাই করা চ্যানেলের সাবস্ক্রাইবারদের তালিকা ফিরিয়ে আনে।

GET {base_URL}/subscriptions?part=snippet
                            &mySubscribers=true

ব্যবহারকারীর সাবস্ক্রিপশন

সাবস্ক্রাইবারদের (subscriptions.list) তালিকা তৈরি করার জন্য যে পদ্ধতি ব্যবহার করা হয়, কোনও ব্যবহারকারী যেসব চ্যানেল সাবস্ক্রাইব করেন সেগুলির তালিকা তৈরি করার জন্যও সেই পদ্ধতি ব্যবহার করা যেতে পারে। এই অনুরোধ mine প্যারামিটার ব্যবহার করে যাচাই করা ব্যবহারকারীর সাবস্ক্রাইব করা YouTube চ্যানেলের তালিকা নিয়ে আসে।

GET {base_URL}/subscriptions?part=snippet
                            &mine=true

ব্যবহারকারীর অ্যাক্টিভিটি ফিরিয়ে আনুন

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

নির্দিষ্ট সময়সীমার মধ্যে অ্যাক্টিভিটি

এই অনুরোধের মাধ্যমে, এপ্রিল ২০১৩-এ যাচাই করা ব্যবহারকারীর করা সব অ্যাকশন ফিরিয়ে আনা হয়।

GET {base_URL}/activities?part=snippet,contentDetails
                         &mine=true
                         &publishedAfter=2013-04-01T00%3A00%3A00Z
                         &publishedBefore=2013-05-01T00%3A00%3A00Z

হোম পেজ অ্যাক্টিভিটি

এই অনুরোধ যাচাই করা ব্যবহারকারীর YouTube হোম পেজে দেখানো কাস্টম অ্যাক্টিভিটি ফিড ফিরিয়ে আনে। 

GET {base_URL}/activities?part=snippet,contentDetails
                         &home=true

YouTube ভিডিও এবং চ্যানেলের জন্য দেখার পরিসংখ্যান, জনপ্রিয়তা মেট্রিক্স এবং ডেমোগ্রাফিক তথ্য পেতে, আপনি YouTube Analytics API ব্যবহার করেন। Sample API Requests পৃষ্ঠা থেকে আপনি জানতে পারবেন যে YouTube Analytics থেকে কীভাবে সাধারণ রিপোর্ট রিট্রিভ করতে হয়।

search.list পদ্ধতি আপনাকে YouTube ভিডিও, চ্যানেল বা প্লেলিস্ট সার্চ করতে দেয় যা নির্দিষ্ট করা মাপকাঠির সাথে মেলে। আপনি ভিডিওর প্রপার্টি, কীওয়ার্ড বা বিষয়ের (অথবা এগুলির কম্বিনেশন) ভিত্তিতে সার্চ করতে পারেন এবং তৈরির তারিখ, ভিউয়ের সংখ্যা বা রেটিংয়ের মতো বিষয়ের ভিত্তিতে ফলাফল সাজাতে পারেন।

অন্যান্য YouTube Data API অনুরোধের মতো, search.list পদ্ধতিটি YouTube রিসোর্সের JSON উপস্থাপনা প্রদান করে। তবে, অন্যান্য YouTube রিসোর্সের মতো, সার্চ ফলাফল হল অনন্য আইডি সহ কোনও স্থায়ী অবজেক্ট নয়।

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

আমার সবচেয়ে বেশিবার দেখা ভিডিও

এই অনুরোধ যাচাই করা ব্যবহারকারীর সব ভিডিও খুঁজে বের করে এবং ভিউয়ের সংখ্যা অনুযায়ী নিম্নক্রমে তালিকাভুক্ত করে।

GET {base_URL}/search?part=snippet
                     &forMine=true
                     &order=viewCount
                     &type=video

এম্বেড করা যায় এমন হাই-ডেফিনিশন ভিডিও

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

GET {base_URL}/search?part=snippet
                     &order=rating
                     &type=video
                     &videoDefinition=high
                     &videoEmbeddable=true
                     &key={YOUR_API_KEY}

কোনও নির্দিষ্ট বিষয় সম্পর্কিত ভিডিও

এই অনুরোধটি YouTube Data API সম্পর্কে ক্যাপশন সহ ভিডিওর জন্য একটি কীওয়ার্ড সার্চ করে।

GET {base_URL}/search?part=snippet
                     &q=YouTube+Data+API
                     &type=video
                     &videoCaption=closedCaption
                     &key={YOUR_API_KEY}

বিষয়-ভিত্তিক সার্চ

কোনও নির্দিষ্ট বিষয়ের ভিডিও সার্চ করার আরও একটি উন্নত উপায় হল কীওয়ার্ডের পরিবর্তে Freebase বিষয় ব্যবহার করা। YouTube চ্যানেল ও ভিডিও রিসোর্সে topicDetails অবজেক্ট থাকে, এতে রিসোর্সের সাথে যুক্ত Freebase টপিক আইডির তালিকা থাকে। বিষয়-ভিত্তিক সার্চ কীওয়ার্ড সার্চের চেয়ে বেশি বুদ্ধিদীপ্ত, কারণ Freebase বিষয় বাস্তব-জগতের ধারণা বা জিনিসের সব দিক তুলে ধরে।

Freebase বিষয় ব্যবহার করে সার্চ করতে, আপনাকে প্রথমে Freebase API ব্যবহার করে বিষয় আইডি ফিরিয়ে আনতে হবে। এই অনুরোধের ফলে Python-এর জন্য Freebase বিষয়ের সাথে সম্পর্কিত ভিডিও পাওয়া যায়, যার বিষয় আইডি হল /m/05z1_।

GET {base_URL}/search?part=snippet
                     &topicId=/m/05z1_
                     &type=video
                     &key={YOUR_API_KEY}

প্লেলিস্ট বা চ্যানেল সার্চ করা

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

GET {base_URL}/search?part=snippet
                     &q=soccer
                     &type=playlist
                     &key={YOUR_API_KEY}

আপনি যদি ফুটবল চ্যানেল খুঁজতে চান, তাহলে শুধু type প্যারামিটার পরিবর্তন করুন।

GET {base_URL}/search?part=snippet
                     &q=soccer
                     &type=channel
                     &key={YOUR_API_KEY}

আপনি যদি সকার সম্পর্কিত সব কন্টেন্ট (চ্যানেল, প্লেলিস্ট ও ভিডিও) দেখতে চান, তাহলে ইউনিভার্সাল সার্চ করতে পারেন। আপনি type প্যারামিটার বাদ দিলে, অনুরোধটি সব ধরনের কন্টেন্ট রিট্রিভ করে

GET {base_URL}/search?part=snippet
                     &q=soccer
                     &key={YOUR_API_KEY}

রিসোর্স তৈরি ও আপডেট করুন

আমরা এখনও পর্যন্ত যেসব অনুরোধ দেখেছি, সেগুলি YouTube ডেটা ফিরিয়ে আনার জন্য HTTP GET পদ্ধতি ব্যবহার করে। এছাড়াও, YouTube Data API এমন পদ্ধতি অফার করে যা ভিডিও, প্লেলিস্ট বা চ্যানেলের মতো YouTube রিসোর্স তৈরি বা আপডেট করতে HTTP POST ব্যবহার করে। নিম্নলিখিত অনুরোধগুলি উদাহরণ প্রদান করে।

POST মেথডে Request body থাকে, এটি হল তৈরি বা আপডেট করা রিসোর্সের JSON উপস্থাপনা। আপনি ইন্ট্যার‍্যাক্টিভ টুল ব্যবহার করে Google APIs Explorer-এ JSON রেপ্রেজেন্টেশন তৈরি করতে পারবেন।

সাবস্ক্রিপশন তৈরি করা

এই অনুরোধের মাধ্যমে যাচাই করা ব্যবহারকারী GoogleDevelopers চ্যানেলে সাবস্ক্রাইব করেন। অন্যভাবে বলতে গেলে, এটি একটি সাবস্ক্রিপশন রিসোর্স তৈরি করে।

POST {base_URL}/subscriptions?part=snippet
Request body: {   'snippet': {     'resourceId': {       'kind': 'youtube#channel',       'channelId': 'UC_x5XG1OV2P6uZZ5FSM9Ttw'     }   } }

প্লেলিস্ট তৈরি করা

এই অনুরোধ একটি নতুন পাবলিক প্লেলিস্ট তৈরি করে।

POST {base_URL}/playlists?part=snippet
Request body: {   'snippet': {     'title': 'New playlist',     'description': 'Sample playlist for Data API',   } }

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

আমরা যেহেতু একটি প্লেলিস্ট তৈরি করেছি, তাই আসুন এতে একটি ভিডিও যোগ করি। এই অনুরোধ প্লেলিস্টের ('position': 0) শুরুতে একটি ভিডিও যোগ করে।

POST {base_URL}/playlistItems?part=snippet
  Request body:
  {
    'snippet': {
      'playlistId': '{PLAYLIST_ID}', 
      'resourceId': {
          'kind': 'youtube#video',
          'videoId': '{VIDEO_ID}'
        }
     'position': 0
      }
   }