Youtube API dan Penggunaanya

Kadek Dede Setiawan
5 min readAug 27, 2020

tutorial menggunakan youtube API dengan Python

Youtube merupakan suatu platform streaming video terbesar yang ada saat ini dimana pengguna dapat membagikan videonya sendiri atau dapat menonton video dari oran lain. youtube menyediakan suatu API dimana dengan API tersebut dapat memudahkan developer untuk menstore atau melakukan mining dari data tersebut. jadi selain video yang ada di youtube data lainnya seperti comment dan jumlah view kalian berguna loh hehehe :). okedeh kita lanjut cara menggunakan APInya siapa tau kalian membutuhkannya untuk melakukan analysis atau bahkan membuat suatu bot di youtube.

tutorial ini menggunakan bahasa pemrograman python. mungkin stories selanjutnya gua bakal menggunakan bahasa PHP bagi yang tidak familiar dengan python. ohh ya untuk lebih memudahkan dalam instalasi librarynya ada baiknya menambahkan path python.exe pada windows kalian. caranya bisa diliat pada stories sebelumnya disini.

Step 1 : mendapatkan API key Yotube

hal pertama yang perlu kalian lakukan adalah mendapatkan API key dari yotube itu sendiri. untuk mendapatkannya kita harus membuat akun google developer console terlebih dahulu disini. setelah mebuat akun google developer console selanjutnya pada bagian kanan klik library selanjutnya pada search bar cari youtube dan pilih youtube data api v3

youtube data api v3

selanjutnya klik aktifkan api dan kelola dan pada bagian dashboard kredensial pilih buat kredensial.

dashboard kredensial

selanjutnya pilih API yang digunakan dimana yotube data api v3 dan dimana API akan digunakan yaitu browser (javascript). pemilihan browser(javascript) adalah untuk memudahkan dalam penggunaan API.

dashboard kredensial

selanjutnya pilih kredensial apa yang saya butuhkan dimana akan diberikan API key yang akan kita gunakan.

api key yang akan digunakan

Step 2 : Instalasi Library

library yang akan digunakan untuk mengakses API youtube adalah library google api client dari google dan httplib. untuk instalasi bisa menggunakan cmd kalau path python telah ada di system. instalasi library dapat dilakukan dengan command berikut.

pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

Step 3 : Kuy Ngoding

hal pertama yang kita lakukan adalah melakukan pemanggilan library atau import library python

from googleapiclient.discovery import build

selanjutnya kita deklarasikan API key yang telah kita dapatkan sebelumnya untuk memudahkan dalam penggunaannya.

api_key = "api key youtube"

selanjutnya kita akan menggunakan fungsi dari google api client dimana yaitu fungsi build.

youtube = build('youtube', 'v3', developerKey=api_key)

dalam fungsi build terdapat 3 inputan yaitu API yang digunakan, versi dari API dan API key yang diberikan sebelumnya. selanjutnya kita akan membuat request dari python untuk meminta data yang diperlukan.

req = youtube.search().list(part='snippet',
q='video yang dicari',
type='video',
maxResults=1)
type(req)
res = req.execute()

dari request pada sintaks diatas akan memberikan output berupa json dimana data yang diberikan adalah data terkait judul video, akun yang mengupload video dan jumlah view dari video. berikut struktur data json yang diberikan oleh API youtube.

{
'etag': '5l90o61yJy26t997iOa8k9fnhpk',
'regionCode': 'ID',
'kind': 'youtube#searchListResponse',
'pageInfo': {'
resultsPerPage': 1,
'totalResults': 710476
},
'nextPageToken': 'CAEQAA',
'items':
[
{
'etag': 'Jd-h-EJ4I2H0zBRgqTukqpNM-rA',
'snippet': {
'publishTime': '2020-08-26T13:00:13Z',
'publishedAt': '2020-08-26T13:00:13Z',
'description': 'Instagram Atta : @attahalilintar Facebook kita : Atta Halilintar https://www.facebook.com/Atta-Halilintar tiktok : @attahalilintar twitter : @attahalilintar Contact ...',
'channelId': 'UCaKLg1ELiX0zTJ6Je3c5esA',
'title': 'PILIH POLIGAMI ATAU SELINGKUH ? .... Maia, AL,EL, DUL',
'channelTitle': 'Atta Halilintar',
'thumbnails': {
'high': {
'width': 480,
'url': 'https://i.ytimg.com/vi/QNz5FB05eA8/hqdefault.jpg',
'height': 360
},
'medium': {
'width': 320,
'url': 'https://i.ytimg.com/vi/QNz5FB05eA8/mqdefault.jpg',
'height': 180
},
'default': {
'width': 120,
'url': 'https://i.ytimg.com/vi/QNz5FB05eA8/default.jpg',
'height': 90
}
},
'liveBroadcastContent': 'none'
},
'id': {
'videoId': 'QNz5FB05eA8',
'kind': 'youtube#video'
},
'kind': 'youtube#searchResult'
}
]
}

kode diatas merupakan struktur data json hasil request sebelumnya untuk . jadi disini kita akan mengambil data video id untuk mengambil data lebih spesifik dari video tersebut.

for item in res['items']:
video_id = str(item['id']['videoId'])

pengambilan video id dilakukan dengan cara memanggil terlebih dahulu id dan selanjutnya videoId karena attribut videoId terdapat didalam id. selanjutnya video id akan dimasukkan kedalam request untuk mengambil data yang lebih spesifik dari video tersebut. jadi videoId adalah id atau pengenal dari video yang ada di youtube pada file json.

comment = youtube.commentThreads().list(
part="snippet",
videoId=video_id,
textFormat="plainText",
maxResults=200
).execute()

kode diatas adalah kode request untuk meminta data comment yang ada pada video yang dipilih sebelumnya dengan videoId. untuk saat ini kita akan mengambil data comment dari youtube dan untuk lebih jelasnya tentang data apa saja yang dapat diambil dari yotube dapa dilihat disini .

{
'etag': 'MADY0U7VYdr0PE_e-4xH1CskgtY',
'id': 'UgwcWBsm2gp4FTRb8554AaABAg',
'snippet':
{
'textDisplay': '"SEMOGA SUKSES BANG ATTA HALILINTAR "\n"TIDAK SOMBONG"\n"JADI YOUTUBERS YANG RENDAH HATI"\n"SUKSES BANG ATTA HALILINTAR DAN KELUARGA"\nIG:wahyu_muryadi_2000',
'textOriginal': '"SEMOGA SUKSES BANG ATTA HALILINTAR "\n"TIDAK SOMBONG"\n"JADI YOUTUBERS YANG RENDAH HATI"\n"SUKSES BANG ATTA HALILINTAR DAN KELUARGA"\nIG:wahyu_muryadi_2000',
'likeCount': 0,
'updatedAt': '2020-08-27T09:32:16Z',
'viewerRating': 'none',
'publishedAt': '2020-08-27T09:32:16Z',
'authorChannelUrl': 'http://www.youtube.com/channel/UC2P1JanymxJ4VXxBLEQetjQ',
'authorProfileImageUrl': 'https://yt3.ggpht.com/a/AATXAJzbSXKMXR5mdpmBw8yrnS3Q5DqBAdoWGdjQyRYc-A=s48-c-k-c0xffffffff-no-rj-mo',
'authorChannelId': {
'value': 'UC2P1JanymxJ4VXxBLEQetjQ'
},
'authorDisplayName': 'wahyu muryadi',
'videoId': 'QNz5FB05eA8',
'canRate': True},
'kind': 'youtube#comment'
}

kode diatas adalah hasil respons dari request commentThreads(). selanjutnya kita akan mengambil data yang diperlukan yaitu data comment dari video tersebut. berikut kodenya.

for item in comment["items"]:
comment = item["snippet"]["topLevelComment"]
author = comment["snippet"]["authorDisplayName"]
text = comment["snippet"]["textDisplay"]

kode diatas dalah kode untuk mengambil data yang diperlukan dari respon API yang diberikan. kenapa menggunakan perulangan for karena data respon yang diberikan berupa array list maka diperlukan perulangan for untuk mengambil data yang diperlukan.

ohh ya untuk yang terjadi error seperti “UnicodeEncodeError: ‘charmap’ codec can’t encode character bla bla bla “ bisa diatasi dengan menjalankan kode ini di terminal

“chcp 65001” nggak isi petiknya ya :)

untuk full codenya jadi seperti berikut :)))))

from googleapiclient.discovery import build
api_key = "api key youtube"
youtube = build('youtube', 'v3', developerKey=api_key)
req = youtube.search().list(part='snippet',
q='atta halilintar',
type='video',
maxResults=1)
type(req)
res = req.execute()
for item in res['items']:
print(item['id']['videoId'])
video_id = str(item['id']['videoId'])
comment = youtube.commentThreads().list(
part="snippet",
videoId=video_id,
textFormat="plainText",
maxResults=1
).execute()
for item in comment["items"]:
comment = item["snippet"]["topLevelComment"]
author = comment["snippet"]["authorDisplayName"]
text = comment["snippet"]["textDisplay"]
print(comment)

Sumber :

--

--

Kadek Dede Setiawan

manusia yang sedang tertarik dengan data sains , flutter dan juga node.js