Menampilkan kumpulan item playlist yang cocok dengan parameter permintaan API. Anda dapat mengambil semua item playlist dalam playlist tertentu, atau mengambil satu atau beberapa item playlist dengan ID uniknya.
Dampak kuota: Panggilan ke metode ini memiliki biaya kuota sebesar 1 unit.
Kasus penggunaan umum
Permintaan
Permintaan HTTP
GET https://www.googleapis.com/youtube/v3/playlistItems
Parameter
Tabel berikut mencantumkan parameter yang didukung kueri ini. Semua parameter yang tercantum adalah parameter kueri.
Parameter | ||
---|---|---|
Parameter yang diperlukan | ||
part |
string Parameter part menentukan daftar yang dipisahkan koma yang berisi satu atau beberapa properti resource playlistItem yang akan disertakan oleh respons API.Jika parameter mengidentifikasi properti yang berisi properti turunan, properti turunan akan disertakan dalam respons. Misalnya, dalam resource playlistItem , properti snippet berisi banyak kolom, termasuk properti title , description , position , dan resourceId . Dengan demikian, jika Anda menetapkan part=snippet , respons API akan berisi semua properti tersebut.Daftar berikut berisi nama part yang dapat Anda sertakan dalam nilai parameter:
|
|
Filter (tentukan salah satu parameter berikut) | ||
id |
string Parameter id menentukan daftar yang dipisahkan koma yang berisi satu atau beberapa ID item playlist unik. |
|
playlistId |
string Parameter playlistId menentukan ID unik playlist yang item playlist-nya ingin Anda ambil. Perlu diketahui bahwa meskipun parameter ini bersifat opsional, setiap permintaan untuk mengambil item playlist harus menentukan nilai parameter id atau parameter playlistId . |
|
Parameter opsional | ||
maxResults |
unsigned integer Parameter maxResults menentukan jumlah maksimum item yang harus ditampilkan dalam kumpulan hasil. Nilai yang dapat diterima adalah 0 hingga 50 , inklusif. Nilai defaultnya adalah 5 . |
|
onBehalfOfContentOwner |
string Parameter ini hanya dapat digunakan dalam permintaan yang diizinkan dengan benar. Catatan: Parameter ini ditujukan khusus untuk partner konten YouTube. Parameter onBehalfOfContentOwner menunjukkan bahwa kredensial otorisasi permintaan mengidentifikasi pengguna CMS YouTube yang bertindak atas nama pemilik konten yang ditentukan dalam nilai parameter. Parameter ini ditujukan untuk partner konten YouTube yang memiliki dan mengelola banyak channel YouTube yang berbeda. Pemilik konten dapat melakukan autentikasi sekali dan mendapatkan akses ke semua data channel serta video mereka, tanpa harus memberikan kredensial autentikasi untuk setiap channel. Akun CMS yang diautentikasi oleh pengguna harus ditautkan ke pemilik konten YouTube yang ditentukan. |
|
pageToken |
string Parameter pageToken mengidentifikasi halaman tertentu dalam kumpulan hasil yang harus ditampilkan. Dalam respons API, properti nextPageToken dan prevPageToken mengidentifikasi halaman lain yang dapat diambil. |
|
videoId |
string Parameter videoId menentukan bahwa permintaan hanya boleh menampilkan item playlist yang berisi video yang ditentukan. |
Isi permintaan
Jangan berikan isi permintaan saat memanggil metode ini.
Respons
Jika berhasil, metode ini akan menampilkan isi respons dengan struktur berikut:
{ "kind": "youtube#playlistItemListResponse", "etag": etag, "nextPageToken": string, "prevPageToken": string, "pageInfo": { "totalResults": integer, "resultsPerPage": integer }, "items": [ playlistItem Resource ] }
Properti
Tabel berikut mendefinisikan properti yang muncul di resource ini:
Properti | |
---|---|
kind |
string Mengidentifikasi jenis resource API. Nilainya akan berupa youtube#playlistItemListResponse . |
etag |
etag Etag resource ini. |
nextPageToken |
string Token yang dapat digunakan sebagai nilai parameter pageToken untuk mengambil halaman berikutnya di kumpulan hasil. |
prevPageToken |
string Token yang dapat digunakan sebagai nilai parameter pageToken untuk mengambil halaman sebelumnya di kumpulan hasil. |
pageInfo |
object Objek pageInfo mengenkapsulasi informasi paging untuk kumpulan hasil. |
pageInfo.totalResults |
integer Jumlah total hasil dalam kumpulan hasil. |
pageInfo.resultsPerPage |
integer Jumlah hasil yang disertakan dalam respons API. |
items[] |
list Daftar item playlist yang cocok dengan kriteria permintaan. |
Contoh
Catatan: Contoh kode berikut mungkin tidak mewakili semua bahasa pemrograman yang didukung. Baca dokumentasi library klien untuk mengetahui daftar bahasa yang didukung.
Go
Contoh kode ini memanggil metodeplaylistItems.list
API untuk mengambil daftar
video yang diupload ke saluran yang terkait dengan permintaan. Kode tersebut juga memanggil metode channels.list
dengan parameter mine
yang disetel ke true
untuk mengambil ID playlist yang mengidentifikasi video yang diupload di channel tersebut.
Contoh ini menggunakan library klien 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() } } }
.NET
Contoh kode berikut memanggil metodeplaylistItems.list
API untuk mengambil daftar video
yang diupload ke channel yang terkait dengan permintaan. Kode tersebut juga memanggil metode channels.list
dengan
parameter mine
yang disetel ke true
untuk mengambil ID playlist yang mengidentifikasi video yang
diupload di channel.
Contoh ini menggunakan library klien.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; } } } } }
Ruby
Contoh ini memanggil metodeplaylistItems.list
API untuk mengambil daftar video yang diupload
ke channel yang terkait dengan permintaan. Kode tersebut juga memanggil metode channels.list
dengan
parameter mine
yang disetel ke true
untuk mengambil ID playlist yang mengidentifikasi video yang
diupload di channel.
Contoh ini menggunakan library klien Ruby.
#!/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
Error
Tabel berikut mengidentifikasi pesan error yang dapat ditampilkan API sebagai respons terhadap panggilan ke metode ini. Lihat dokumentasi pesan error untuk detail selengkapnya.
Jenis error | Detail error | Deskripsi |
---|---|---|
forbidden (403) |
playlistItemsNotAccessible |
Permintaan tidak diizinkan untuk mengambil playlist yang ditentukan dengan benar. |
forbidden (403) |
watchHistoryNotAccessible |
Data histori tontonan tidak dapat diambil melalui API. |
forbidden (403) |
watchLaterNotAccessible |
Item dalam playlist "tonton nanti" tidak dapat diambil melalui API. |
notFound (404) |
playlistNotFound |
Playlist yang diidentifikasi dengan parameter playlistId permintaan tidak dapat ditemukan. |
notFound (404) |
videoNotFound |
Video yang diidentifikasi dengan parameter videoId permintaan tidak dapat ditemukan. |
required (400) |
playlistIdRequired |
Permintaan berlangganan tidak menentukan nilai untuk properti playlistId wajib. |
invalidValue (400) |
playlistOperationUnsupported |
API tidak mendukung kemampuan untuk membuat daftar video dalam playlist yang ditentukan. Misalnya, Anda tidak dapat mencantumkan video di playlist tonton nanti. |
Cobalah!
Gunakan APIs Explorer untuk memanggil API ini dan melihat permintaan dan respons API.