প্লেলিস্ট আইটেমগুলির একটি সংগ্রহ দেখায় যা API অনুরোধের পরামিতিগুলির সাথে মেলে৷ আপনি একটি নির্দিষ্ট প্লেলিস্টের সমস্ত প্লেলিস্ট আইটেম পুনরুদ্ধার করতে পারেন বা তাদের অনন্য আইডি দ্বারা এক বা একাধিক প্লেলিস্ট আইটেম পুনরুদ্ধার করতে পারেন৷
কোটা প্রভাব: এই পদ্ধতিতে একটি কলের জন্য 1 ইউনিটের কোটা খরচ হয়।
সাধারণ ব্যবহারের ক্ষেত্রে
অনুরোধ
HTTP অনুরোধ
GET https://www.googleapis.com/youtube/v3/playlistItems
পরামিতি
নিম্নলিখিত সারণীতে এই ক্যোয়ারী সমর্থন করে এমন প্যারামিটারগুলি তালিকাভুক্ত করা হয়েছে৷ তালিকাভুক্ত সমস্ত প্যারামিটার হল ক্যোয়ারী প্যারামিটার।
পরামিতি | ||
---|---|---|
প্রয়োজনীয় পরামিতি | ||
part | string part প্যারামিটার এক বা একাধিক playlistItem আইটেম রিসোর্স বৈশিষ্ট্যের একটি কমা-ব������্ত ��ালিকা ��ি��্��িষ্ট ক��ে যা API প্রতিক্রিয়া অন্তর্ভুক্ত করবে।যদি প্যারামিটারটি এমন একটি সম্পত্তি চিহ্নিত করে যাতে শিশু বৈশিষ্ট্য রয়েছে, তবে শিশু বৈশিষ্ট্যগুলি প্রতিক্রিয়াতে অন্তর্ভুক্ত করা হবে। উদাহরণস্বরূপ, একটি playlistItem আইটেম রিসোর্সে, snippet সম্পত্তিতে title , description , position এবং resourceId বৈশিষ্ট্য সহ অসংখ্য ক্ষেত্র রয়েছে। যেমন, আপনি part=snippet সেট করলে, API প্রতিক্রিয়াতে সেই সমস্ত বৈশিষ্ট্য থাকবে।নিম্নলিখিত তালিকায় part নাম রয়েছে যা আপনি প্যারামিটার মান অন্তর্ভুক্ত করতে পারেন:
| |
ফিল্টার (নিম্নলিখিত পরামিতিগুলির মধ্যে একটি নির্দিষ্ট করুন) | ||
id | string id প্যারামিটার এক বা একাধিক অনন্য প্লেলিস্ট আইটেম আইডিগুলির একটি কমা দ্বারা পৃথক করা তালিকা নির্দিষ্ট করে৷ | |
playlistId | string playlistId প্যারামিটারটি প্লেলিস্টের অনন্য আইডি নির্দিষ্ট করে যার জন্য আপনি প্লেলিস্ট আইটেমগুলি পুনরুদ্ধার করতে চান৷ মনে রাখবেন যে যদিও এটি একটি ঐচ্ছিক প্যারামিটার, প্লেলিস্ট আইটেমগুলি পুনরুদ্ধার করার জন্য প্রতিটি অনুরোধে id প্যারামিটার বা playlistId প্যারামিটারের জন্য একটি মান নির্দিষ্ট করতে হবে। | |
ঐচ্ছিক পরামিতি | ||
maxResults | unsigned integer maxResults প্যারামিটারটি ফলাফল সেটে সর্বাধিক কতগুলি আইটেম ফেরত দিতে হবে তা নির্দিষ্ট করে। গ্রহণযোগ্য মান হল 0 থেকে 50 , সমেত। ডিফল্ট মান হল 5 । | |
onBehalfOfContentOwner | string এই প্যারামিটারটি শুধুমাত্র সঠিকভাবে অনুমোদিত অনুরোধে ব্যবহার করা যেতে পারে। দ্রষ্টব্য: ��ই প্যারামিটারটি শুধুমাত্র YouTube বিষয়বস্তু অংশীদারদের জন্য উদ্দিষ্ট৷ onBehalfOfContentOwner প্যারামিটারটি নির্দেশ করে যে অনুরোধের অনুমোদনের শংসাপত্রগুলি একজন YouTube CMS ব্যবহারকারীকে শনাক্ত করে যিনি প্যারামিটার মানতে নির্দিষ্ট সামগ্রীর মালিকের পক্ষে কাজ করছেন৷ এই প্যারামিটারটি YouTube বিষয়বস্তু অংশীদারদের জন্য উদ্দিষ্ট যারা বিভিন্ন YouTube চ্যানেলের মালিক এবং পরিচালনা করে৷ এটি সামগ্রীর মালিকদের একবার প্রমাণীকরণ করতে এবং প্রতিটি পৃথক চ্যানেলের জন্য প্রমাণীকরণ শংসাপত্র প্রদান না করেই তাদের সমস্ত ভিডিও এবং চ্যানেল ডেটাতে অ্যাক্সেস পেতে দেয়৷ ব্যবহারকারী যে CMS অ্যাকাউন্টের সাথে প্রমাণীকরণ করে সেটি অবশ্যই নির্দিষ্ট YouTube বিষয়বস্তুর মালিকের সাথে লিঙ্ক করতে হবে। | |
pageToken | string pageToken প্যারামিটার ফলাফল সেটে একটি নির্দিষ্ট পৃষ্ঠা চিহ্নিত করে যা ফেরত দেওয়া উচিত। একটি এপিআই প্রতিক্রিয়াতে, nextPageToken এবং prevPageToken বৈশিষ্ট্যগুলি অন্যান্য পৃষ্ঠাগুলি সনাক্ত করে যা পুনরুদ্ধার করা যেতে পারে। | |
videoId | string videoId প্যারামিটারটি নির্দিষ্ট করে যে অনুরোধটি শুধুমাত্র সেই প্লেলিস্ট আইটেমগুলিকে ফেরত দেবে যাতে নির্দিষ্ট ভিডিও রয়েছে৷ |
শরীরের অনুরোধ
এই পদ্ধতিতে কল করার সময় একটি অনুরোধের অংশ প্রদান করবেন না।
প্রতিক্রিয়া
সফল হলে, এই পদ্ধতিটি নিম্নলিখিত কাঠামো সহ একটি প্রতিক্রিয়া বডি প্রদান করে:
{ "kind": "youtube#playlistItemListResponse", "etag": etag, "nextPageToken": string, "prevPageToken": string, "pageInfo": { "totalResults": integer, "resultsPerPage": integer }, "items": [ playlistItem Resource ] }
বৈশিষ্ট্য
নিম্নলিখিত সারণী এই সম্পদে প্রদর্শিত বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করে:
বৈশিষ্ট্য | |
---|---|
kind | string API সম্পদের ধরন সনাক্ত করে। মান হবে youtube#playlistItemListResponse । |
etag | etag এই সম্পদের Etag. |
nextPageToken | string ফলাফল সেটের পরবর্তী পৃষ্ঠাটি পুনরুদ্ধার করতে pageToken প্যারামিটারের মান হিসাবে টোকেন ব্যবহার করা যেতে পারে। |
prevPageToken | string ফলাফল সেটে পূর্ববর্তী পৃষ্ঠাটি পুনরুদ্ধার করতে pageToken প্যারামিটারের মান হিসাবে টোকেন ব্যবহার করা যেতে পারে। |
pageInfo | object pageInfo অবজেক্ট ফলাফল সেটের জন্য পেজিং তথ্য এনক্যাপসুলেট করে। |
pageInfo. totalResults | integer ফলাফল সেটে মোট ফলাফলের সংখ্যা। |
pageInfo. resultsPerPage | integer API প্রতিক্রিয়ায় অন্তর্ভুক্ত ফলাফলের সংখ্যা। |
items[] | list অনুরোধের মানদণ্ডের সাথে মেলে এমন প্লেলিস্ট আইটেমগুলির একটি তালিকা৷ |
উদাহরণ
দ্রষ্টব্য: নিম্নলিখিত কোড নমুনাগুলি সমস্ত সমর্থিত প্রোগ্রামিং ভাষার প্রতিনিধিত্ব নাও করতে পারে৷ সমর্থিত ভাষার তালিকার জন্য ক্লায়েন্ট লাইব্রেরি ডকুমেন্টেশন দেখুন।
যাওয়া
অনুরোধের সাথে যুক্ত চ্যানেলে আপলোড করা ভিডিওগুলির একটি তালিকা পুনরুদ্ধার করতে এই কোড নমুনা API-এরplaylistItems.list
পদ্ধতিতে কল করে৷ কোডটি চ্যানেলের আপলোড করা ভিডিওগুলি সনাক্ত করে এমন প্লেলিস্ট আইডি পুনরুদ্ধার করার জন্য mine
প্যারামিটারটিকে true
হিসাবে সেট করে channels.list
পদ্ধতিকেও কল করে৷এই উদাহরণটি Go ক্লায়েন্ট লাইব্রেরি ব্যবহার করে।
package main import ( "fmt" "log" "google.golang.org/api/youtube/v3" ) // Retrieve playlistItems in the specified playlist func playlistItemsList(service *youtube.Service, part string, playlistId string, pageToken string) *youtube.PlaylistItemListResponse { call := service.PlaylistItems.List(part) call = call.PlaylistId(playlistId) if pageToken != "" { call = call.PageToken(pageToken) } response, err := call.Do() handleError(err, "") return response } // Retrieve resource for the authenticated user's channel func channelsListMine(service *youtube.Service, part string) *youtube.ChannelListResponse { call := service.Channels.List(part) call = call.Mine(true) response, err := call.Do() handleError(err, "") return response } func main() { client := getClient(youtube.YoutubeReadonlyScope) service, err := youtube.New(client) if err != nil { log.Fatalf("Error creating YouTube client: %v", err) } response := channelsListMine(service, "contentDetails") for _, channel := range response.Items { playlistId := channel.ContentDetails.RelatedPlaylists.Uploads // Print the playlist ID for the list of uploaded videos. fmt.Printf("Videos in list %s\r\n", playlistId) nextPageToken := "" for { // Retrieve next set of items in the playlist. playlistResponse := playlistItemsList(service, "snippet", playlistId, nextPageToken) for _, playlistItem := range playlistResponse.Items { title := playlistItem.Snippet.Title videoId := playlistItem.Snippet.ResourceId.VideoId fmt.Printf("%v, (%v)\r\n", title, videoId) } // Set the token to retrieve the next page of results // or exit the loop if all results have been retrieved. nextPageToken = playlistResponse.NextPageToken if nextPageToken == "" { break } fmt.Println() } } }
.নেট
অনুরোধের সাথে যুক্ত চ্যানেলে আপলোড করা ভিডিওগুলির একটি তালিকা পুনরুদ্ধার করতে নিম্নলিখিত কোড নমুনা API-এরplaylistItems.list
পদ্ধতিতে কল করে৷ কোডটি চ্যানেলের আপলোড করা ভিডিওগুলি সনাক্ত করে এমন প্লেলিস্ট আইডি পুনরুদ্ধার করার জন্য mine
প্যারা���িটারটিকে true
হিসাবে সেট করে channels.list
পদ্ধতিকেও কল করে৷এই উদাহরণটি .NET ক্লায়েন্ট লাইব্রেরি ব্যবহার করে।
using System; using System.IO; using System.Reflection; using System.Threading; using System.Threading.Tasks; using Google.Apis.Auth.OAuth2; using Google.Apis.Services; using Google.Apis.Upload; using Google.Apis.Util.Store; using Google.Apis.YouTube.v3; using Google.Apis.YouTube.v3.Data; namespace Google.Apis.YouTube.Samples { /// <summary> /// YouTube Data API v3 sample: retrieve my uploads. /// Relies on the Google APIs Client Library for .NET, v1.7.0 or higher. /// See https://developers.google.com/api-client-library/dotnet/get_started /// </summary> internal class MyUploads { [STAThread] static void Main(string[] args) { Console.WriteLine("YouTube Data API: My Uploads"); Console.WriteLine("============================"); try { new MyUploads().Run().Wait(); } catch (AggregateException ex) { foreach (var e in ex.InnerExceptions) { Console.WriteLine("Error: " + e.Message); } } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } private async Task Run() { UserCredential credential; using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read)) { credential = await GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, // This OAuth 2.0 access scope allows for read-only access to the authenticated // user's account, but not other types of account access. new[] { YouTubeService.Scope.YoutubeReadonly }, "user", CancellationToken.None, new FileDataStore(this.GetType().ToString()) ); } var youtubeService = new YouTubeService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = this.GetType().ToString() }); var channelsListRequest = youtubeService.Channels.List("contentDetails"); channelsListRequest.Mine = true; // Retrieve the contentDetails part of the channel resource for the authenticated user's channel. var channelsListResponse = await channelsListRequest.ExecuteAsync(); foreach (var channel in channelsListResponse.Items) { // From the API response, extract the playlist ID that identifies the list // of videos uploaded to the authenticated user's channel. var uploadsListId = channel.ContentDetails.RelatedPlaylists.Uploads; Console.WriteLine("Videos in list {0}", uploadsListId); var nextPageToken = ""; while (nextPageToken != null) { var playlistItemsListRequest = youtubeService.PlaylistItems.List("snippet"); playlistItemsListRequest.PlaylistId = uploadsListId; playlistItemsListRequest.MaxResults = 50; playlistItemsListRequest.PageToken = nextPageToken; // Retrieve the list of videos uploaded to the authenticated user's channel. var playlistItemsListResponse = await playlistItemsListRequest.ExecuteAsync(); foreach (var playlistItem in playlistItemsListResponse.Items) { // Print information about each video. Console.WriteLine("{0} ({1})", playlistItem.Snippet.Title, playlistItem.Snippet.ResourceId.VideoId); } nextPageToken = playlistItemsListResponse.NextPageToken; } } } } }
রুবি
অনুরোধের সাথে যুক্ত চ্যানেলে আপলোড করা ভিডিওগুলির একটি তালিকা পুনরুদ্ধার করতে এই নমুনাটি API-এরplaylistItems.list
পদ্ধতিকে কল করে৷ কোডটি চ্যানেলের আপলোড করা ভিডিওগুলি সনাক্ত করে এমন প্লেলিস্ট আইডি পুনরুদ্ধার করার জন্য mine
প্যারামিটারটিকে true
হিসাবে সেট করে channels.list
পদ্ধতিকেও কল করে৷এই উদাহরণটি রুবি ক্লায়েন্ট লাইব্রেরি ব্যবহার করে।
#!/usr/bin/ruby require 'rubygems' gem 'google-api-client', '>0.7' require 'google/api_client' require 'google/api_client/client_secrets' require 'google/api_client/auth/file_storage' require 'google/api_client/auth/installed_app' # This OAuth 2.0 access scope allows for read-only access to the authenticated # user's account, but not other types of account access. YOUTUBE_READONLY_SCOPE = 'https://www.googleapis.com/auth/youtube.readonly' YOUTUBE_API_SERVICE_NAME = 'youtube' YOUTUBE_API_VERSION = 'v3' def get_authenticated_service client = Google::APIClient.new( :application_name => $PROGRAM_NAME, :application_version => '1.0.0' ) youtube = client.discovered_api(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION) file_storage = Google::APIClient::FileStorage.new("#{$PROGRAM_NAME}-oauth2.json") if file_storage.authorization.nil? client_secrets = Google::APIClient::ClientSecrets.load flow = Google::APIClient::InstalledAppFlow.new( :client_id => client_secrets.client_id, :client_secret => client_secrets.client_secret, :scope => [YOUTUBE_READONLY_SCOPE] ) client.authorization = flow.authorize(file_storage) else client.authorization = file_storage.authorization end return client, youtube end def main client, youtube = get_authenticated_service begin # Retrieve the "contentDetails" part of the channel resource for the # authenticated user's channel. channels_response = client.execute!( :api_method => youtube.channels.list, :parameters => { :mine => true, :part => 'contentDetails' } ) channels_response.data.items.each do |channel| # From the API response, extract the playlist ID that identifies the list # of videos uploaded to the authenticated user's channel. uploads_list_id = channel['contentDetails']['relatedPlaylists']['uploads'] # Retrieve the list of videos uploaded to the authenticated user's channel. next_page_token = '' until next_page_token.nil? playlistitems_response = client.execute!( :api_method => youtube.playlist_items.list, :parameters => { :playlistId => uploads_list_id, :part => 'snippet', :maxResults => 50, :pageToken => next_page_token } ) puts "Videos in list #{uploads_list_id}" # Print information about each video. playlistitems_response.data.items.each do |playlist_item| title = playlist_item['snippet']['title'] video_id = playlist_item['snippet']['resourceId']['videoId'] puts "#{title} (#{video_id})" end next_page_token = playlistitems_response.next_page_token end puts end rescue Google::APIClient::TransmissionError => e puts e.result.body end end main
ত্রুটি
নিম্নলিখিত সারণী ত্রুটি বার্তাগুলি সনাক্ত করে যা API এই পদ্ধতিতে একটি কলের প্রতিক্রিয়া হিসাবে ফিরে আসতে পারে৷ আরো বিস্তারিত জানার জন্য ত্রুটি বার্তা ডকুমেন্টেশন দেখুন.
ত্রুটির ধরন | ত্রুটি বিস্তারিত | বর্ণনা |
---|---|---|
forbidden (403) | playlistItemsNotAccessible | অনুরোধটি নির্দিষ্ট প্লেলিস্ট পুনরুদ্ধার করার জন্য সঠিকভাবে অনুমোদিত নয়৷ |
forbidden (403) | watchHistoryNotAccessible | দেখার ইতিহাসের ডেটা API এর মাধ্যমে পুনরুদ্ধার করা যাবে না। |
forbidden (403) | watchLaterNotAccessible | "পরে দেখুন" প্লেলিস্টের আইটেমগুলি API এর মাধ্যমে পুনরুদ্ধার করা যাবে না। |
notFound (404) | playlistNotFound | অনুরোধের playlistId প্যারামিটারের সাথে চিহ্নিত প্লেলিস্টটি খুঁজে পাওয়া যাবে না। |
notFound (404) | videoNotFound | অনুরোধের videoId প্যারামিটারের সাথে চিহ্নিত ভিডিও পাওয়া যাবে না। |
required (400) | playlistIdRequired | সাবস্ক্রাইব অনুরোধ প্রয়োজনীয় playlistId সম্পত্তির জন্য একটি মান নির্দিষ্ট করে না। |
invalidValue (400) | playlistOperationUnsupported | API নির্দিষ্ট প্লেলিস্টে ভিডিও তালিকাভুক্ত করার ক্ষমতা সমর্থন করে না। উদাহরণস্বরূপ, আপনি আপনার পরে দেখার প্লেলিস্টে একটি ভিডিও তালিকাভুক্ত করতে পারবেন না৷ |
এটা চেষ্টা করুন!
এই API কল করতে APIs Explorer ব্যবহার করুন এবং API অনুরোধ এবং প্রতিক্রিয়া দেখুন।