Contoh Permintaan API

Halaman ini menampilkan contoh permintaan ke YouTube Data API. Anda menggunakan YouTube Data API untuk mengambil dan memanipulasi resource YouTube seperti video, channel, dan playlist. Setiap contoh ditautkan ke dan mengisi Google APIs Explorer sehingga Anda dapat menjalankan contoh dan melihat responsnya.

Untuk mengetahui informasi tentang mengupload konten menggunakan YouTube Data API, lihat Upload yang Dapat Dilanjutkan.

Ringkasan

Untuk kejelasan presentasi, contoh di halaman ini menampilkan elemen khas setiap permintaan dan menyingkat URL dasar untuk host yang memproses permintaan Data API (https://www.googleapis.com/youtube/v3). Untuk membuat permintaan di luar konteks contoh, Anda harus menyertakan URL lengkap.

Misalnya, berikut adalah contoh permintaan seperti yang muncul di halaman ini:

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

URL lengkap untuk permintaan ini adalah:

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

Beberapa permintaan mengambil data yang hanya dapat diakses oleh pemilik channel YouTube, seperti daftar subscriber. Permintaan ini mengharuskan pemilik channel memberikan hak kepada Google APIs Explorer untuk melakukan permintaan YouTube Data API atas nama mereka. (Lihat Menerapkan Autentikasi OAuth 2.0 untuk mengetahui detail tentang cara mengotorisasi akses ke data channel pribadi.) Setelah menautkan ke APIs Explorer, klik tombol Authorize requests using OAuth 2.0. Langkah ini mengotorisasi APIs Explorer untuk membuat permintaan atas nama pemilik. Anda juga memilih cakupan otorisasi, yang menentukan jenis permintaan yang dapat dilakukan oleh APIs Explorer.

Respons terhadap setiap permintaan adalah representasi JSON dari resource YouTube. Parameter part dalam permintaan menentukan bagian resource yang disertakan dalam respons. Parameter mengidentifikasi satu atau beberapa properti resource tingkat atas (tidak bertingkat) yang harus disertakan dalam respons. Misalnya, beberapa bagian dari resource video adalah:

  • cuplikan
  • contentDetails
  • pemain
  • statistika
  • status

Semua bagian ini adalah objek yang berisi properti bertingkat, dan Anda dapat menganggap objek ini sebagai grup kolom metadata yang mungkin (atau mungkin tidak) diambil oleh server API. Oleh karena itu, parameter part mengharuskan Anda memilih komponen resource yang benar-benar digunakan oleh aplikasi Anda.Lihat Memulai YouTube Data API untuk mengetahui informasi selengkapnya.

Mengambil informasi channel

Permintaan ini menggunakan metode channels.list untuk mengambil detail tentang channel milik pengguna yang diautentikasi.

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

Respons terhadap permintaan ini mencakup ID channel dan contentDetails untuk channel pengguna yang diautentikasi. contentDetails mencakup beberapa playlist yang dibuat sistem dan terkait dengan channel. Banyak permintaan berikutnya memerlukan ID channel atau salah satu ID playlist, jadi penting untuk mencatatnya.

{
  "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
  },
}

Video yang diupload dan playlist yang dibuat sistem

YouTube menambahkan semua video yang diupload ke playlist yang terkait dengan channel. Untuk mendapatkan daftar video yang diupload, Anda membuat kueri playlist "uploads" yang ditampilkan dalam respons yang ditunjukkan di atas untuk informasi channel, menggunakan metode playlistItems.list untuk mengambil video dalam playlist tersebut.

Sebelum menjalankan contoh permintaan berikut di Google APIs Explorer, ganti {UPLOADS_PLAYLIST_ID} dengan ID playlist dari permintaan sebelumnya.

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

Perhatikan bahwa nilai "id" untuk setiap item yang ditampilkan adalah ID playlistItem-nya. ID video untuk item playlist adalah videoId di bagian contentDetails.

Anda dapat mengambil daftar favorit, suka, histori tontonan, atau tonton nanti pengguna menggunakan permintaan di atas dengan mengganti ID playlist yang sesuai dari respons informasi channel.

Playlist buatan pengguna

Permintaan ini menggunakan metode playlists.list untuk mengambil playlist yang terkait dengan channel yang diautentikasi. Perhatikan bahwa permintaan ini tidak mengambil playlist yang dibuat sistem dan disertakan dalam informasi channel (uploads, watchHistory, dan sebagainya). Permintaan ini hanya mengambil playlist buatan pengguna.

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

Setelah memiliki ID playlist, Anda dapat mengambil item dari playlist menggunakan permintaan yang ditampilkan di bagian sebelumnya.

Anda dapat meminta informasi tentang playlist publik channel tanpa autentikasi. Saat mengirimkan permintaan yang tidak diautentikasi, Anda harus menyertakan argumen key yang menentukan kunci API unik untuk aplikasi yang membuat permintaan. Misalnya, permintaan ini mengambil playlist yang terkait dengan channel GoogleDevelopers.

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

Mengambil Langganan

Resource subscription menentukan hubungan antara pengguna YouTube (subscriber) dan channel. Metode subscriptions.list mengambil subscriber ke channel tertentu atau langganan untuk pengguna tertentu, bergantung pada parameter yang Anda sertakan dalam permintaan.

Subscriber channel

Permintaan ini mengambil daftar subscriber ke channel yang diautentikasi.

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

Langganan pengguna

Metode yang sama yang mencantumkan subscriber (subscriptions.list) dapat digunakan untuk mencantumkan channel yang di-subscribe pengguna. Permintaan ini menggunakan parameter mine untuk mengambil daftar channel YouTube yang di-subscribe oleh pengguna yang diautentikasi.

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

Mengambil aktivitas pengguna

Resource activity berisi informasi tentang tindakan yang telah dilakukan oleh channel atau pengguna tertentu di YouTube – mengupload video, subscribe ke channel, dan sebagainya. Metode activities.list mengambil tindakan yang terkait dengan channel atau pengguna yang cocok dengan kriteria permintaan. Misalnya, Anda dapat mengambil tindakan yang terkait dengan channel tertentu, dengan langganan pengguna, atau dengan halaman beranda YouTube kustom pengguna.

Aktivitas selama jangka waktu tertentu

Permintaan ini mengambil semua tindakan yang dilakukan oleh pengguna yang diautentikasi selama April 2013.

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

Aktivitas halaman beranda

Permintaan ini mengambil feed aktivitas kustom yang ditampilkan di halaman beranda YouTube pengguna yang diautentikasi. 

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

Untuk mengambil statistik penayangan, metrik popularitas, dan informasi demografi untuk video dan channel YouTube, Anda menggunakan YouTube Analytics API. Halaman Contoh Permintaan API menunjukkan cara mengambil laporan umum dari YouTube Analytics.

Metode search.list memungkinkan Anda menelusuri video YouTube, channel, atau playlist yang cocok dengan kriteria yang ditentukan. Anda dapat menelusuri berdasarkan properti video, kata kunci, atau topik (atau kombinasi keduanya), dan Anda dapat mengurutkan hasil berdasarkan faktor seperti tanggal pembuatan, jumlah penayangan, atau rating.

Seperti permintaan API YouTube Data lainnya, metode search.list menampilkan representasi JSON dari resource YouTube. Namun, tidak seperti resource YouTube lainnya, hasil penelusuran bukanlah objek persisten dengan ID unik.

Banyak permintaan menelusuri konten yang tersedia secara publik dan oleh karena itu tidak memerlukan autentikasi. Di antara contoh di bawah, hanya contoh pertama yang memerlukan autentikasi, karena secara khusus meminta video "saya". Saat mengirimkan permintaan yang tidak diautentikasi, Anda harus menyertakan argumen key yang menentukan kunci API unik untuk aplikasi Anda.

Video saya yang paling banyak ditonton

Permintaan ini mengambil semua video pengguna yang diautentikasi dan mencantumkannya dalam urutan menurun berdasarkan jumlah penayangan.

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

Video definisi tinggi yang dapat disematkan

Permintaan ini menelusuri video yang memiliki properti tertentu, yaitu video definisi tinggi yang dapat disematkan di situs lain. Permintaan ini mencantumkan hasil dalam urutan rating menurun.

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

Video tentang subjek tertentu

Permintaan ini melakukan penelusuran kata kunci untuk video tentang YouTube Data API yang menyertakan teks.

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

Penelusuran berbasis topik

Cara yang lebih canggih untuk menelusuri video tentang topik tertentu adalah menggunakan topik Freebase, bukan kata kunci. Resource channel dan video YouTube semuanya berisi objek topicDetails yang berisi daftar ID topik Freebase yang terkait dengan resource. Penelusuran berbasis topik lebih cerdas daripada penelusuran kata kunci, karena topik Freebase mewakili semua aspek konsep atau hal dunia nyata.

Untuk menelusuri menggunakan topik Freebase, Anda harus mengambil ID topik terlebih dahulu menggunakan Freebase API. Permintaan ini menampilkan video yang terkait dengan topik Freebase untuk Python, yang ID topiknya adalah /m/05z1_.

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

Menelusuri playlist atau channel

Penelusuran tidak terbatas pada video. Anda juga dapat menelusuri playlist atau channel. Permintaan ini mengambil playlist yang cocok dengan kata kunci 'soccer'.

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

Jika Anda lebih suka menemukan channel sepak bola, cukup ubah parameter type.

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

Jika Anda ingin menemukan semua konten terkait sepak bola (channel, playlist, dan video), Anda dapat melakukan penelusuran universal. Jika Anda menghapus parameter type, permintaan akan mengambil konten dari semua jenis

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

Membuat dan memperbarui resource

Semua permintaan yang telah kita lihat sejauh ini menggunakan metode HTTP GET untuk mengambil data YouTube. YouTube Data API juga menawarkan metode yang menggunakan HTTP POST untuk membuat atau memperbarui resource YouTube seperti video, playlist, atau channel. Permintaan berikut memberikan contoh.

Metode POST menyertakan Request body, yang merupakan representasi JSON dari resource yang dibuat atau diperbarui. Anda dapat membuat representasi JSON di Google APIs Explorer menggunakan alat interaktif.

Membuat langganan

Permintaan ini membuat pengguna yang diautentikasi subscribe ke channel GoogleDevelopers. Dengan kata lain, permintaan ini membuat resource langganan.

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

Membuat playlist

Permintaan ini membuat playlist publik baru.

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

Menambahkan video ke playlist

Setelah membuat playlist, mari kita tambahkan video ke playlist tersebut. Permintaan ini menambahkan video ke awal playlist ('position': 0).

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