Contoh Permintaan API

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

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

Ringkasan

Agar lebih jelas dalam penyajian, contoh di halaman ini menampilkan elemen unik dari setiap permintaan dan singkatan 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 untuk memberikan hak kepada Penjelajah Google API untuk melakukan permintaan YouTube Data API atas nama pemilik channel tersebut. (Lihat Menerapkan Autentikasi 2.0 OAuth untuk mengetahui detail tentang cara memberikan otorisasi akses ke data saluran pribadi.) Setelah menautkan ke Penjelajah API, klik tombol Izinkan permintaan menggunakan OAuth 2.0. Langkah ini memberi otorisasi pada APIs Explorer untuk membuat permintaan atas nama pemilik. Anda juga dapat memilih cakupan otorisasi, yang menentukan jenis permintaan yang dapat dilakukan API Explorer.

Respons untuk setiap permintaan adalah representasi JSON dari resource YouTube. Parameter part dalam permintaan menentukan bagian resource mana yang disertakan dalam respons. Parameter mengidentifikasi satu atau beberapa properti resource level teratas (non-nested) yang harus disertakan dalam respons. Misalnya, beberapa bagian resource video adalah:

  • cuplikan
  • detail konten
  • pemain
  • statistika
  • status

Semua bagian ini adalah objek yang berisi properti bertingkat, dan Anda dapat menganggap objek ini sebagai grup kolom metadata yang dapat (atau mungkin tidak) diambil oleh server API. Dengan demikian, parameter part mengharuskan Anda memilih komponen resource yang benar-benar digunakan aplikasi Anda.Baca Memulai YouTube Data API untuk informasi lebih lanjut.

Mengambil informasi channel

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

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

Respons terhadap permintaan ini mencakup ID saluran dan contentDetails untuk saluran pengguna yang diautentikasi. contentDetails menyertakan beberapa playlist yang dihasilkan sistem yang terkait dengan saluran. 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 akan menambahkan semua video yang diupload ke playlist yang terkait dengan channel tersebut. Untuk mendapatkan daftar video yang diupload, Anda dapat membuat kueri playlist "upload" yang ditampilkan di respons yang ditampilkan di atas untuk informasi channel, menggunakan metode playlistItems.list untuk mengambil video di playlist tersebut.

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

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

Perlu diperhatikan 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 favorit, suka, histori tontonan, atau daftar tonton nanti dari 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 saluran yang diautentikasi. Perhatikan bahwa permintaan ini tidak mengambil playlist yang dihasilkan sistem yang disertakan dalam informasi channel (upload, watchHistory, dan sebagainya). Hanya mengambil playlist yang dibuat pengguna.

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

Setelah memiliki ID playlist, Anda dapat mengambilnya 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 perlu menyertakan argumen key yang menentukan kunci API unik untuk aplikasi yang membuat permintaan tersebut. Misalnya, permintaan ini mengambil playlist yang terkait dengan saluran 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 saluran tertentu atau subscription untuk pengguna tertentu, tergantung parameter yang Anda sertakan dalam permintaan.

Subscriber channel

Permintaan ini mengambil daftar subscriber channel yang diautentikasi.

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

Langganan pengguna

Metode yang sama yang mencantumkan pelanggan (subscriptions.list) dapat digunakan untuk membuat daftar channel yang disubscribe pengguna. Permintaan ini menggunakan parameter mine untuk mengambil daftar channel YouTube yang disubscribe pengguna terautentikasi.

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

Mengambil aktivitas pengguna

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

Aktivitas selama jangka waktu tertentu

Permintaan ini mengambil semua tindakan yang dilakukan pengguna terautentikasi 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 khusus 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 demografis untuk video dan saluran YouTube, Anda menggunakan YouTube Analytics API. Halaman Permintaan API Contoh menunjukkan cara mengambil laporan umum dari YouTube Analytics.

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

Seperti permintaan YouTube Data API 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 untuk publik, sehingga tidak memerlukan autentikasi. Di antara contoh di bawah, hanya halaman pertama yang memerlukan autentikasi karena secara khusus meminta video "saya". Saat mengirimkan permintaan yang tidak diautentikasi, Anda perlu menyertakan argumen key yang menentukan kunci API unik untuk aplikasi Anda.

Video saya yang paling sering ditonton

Permintaan ini mengambil semua video pengguna yang diautentikasi dan mencantumkannya dalam urutan menurun menurut 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. Daftar tersebut 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 dengan menggunakan Topik freebase, bukan kata kunci. Semua referensi video dan channel YouTube 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 merepresentasikan semua aspek konsep atau objek di dunia nyata.

Untuk melakukan penelusuran 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 'sepak bola'.

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

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

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

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

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

Membuat dan mengupdate resource

Permintaan yang telah kami 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 contohnya.

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

Membuat langganan

Permintaan ini membuat pengguna terautentikasi berlangganan ke saluran GoogleDevelopers. Dengan kata lain, repositori membuat resource langganan.

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

Buat 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 daftar putar

Setelah membuat playlist, mari kita tambahkan video ke dalamnya. 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
      }
   }