Latar belakang
Ada tugas untuk mengumpulkan data pada 2000+ video youtube, yang darinya perlu mengekstrak nama video, saluran, dan bahasa.
Fungsi IMPORTXML, yang dengannya Anda dapat melakukan parsing dari situs, tidak membantu, karena, ternyata kemudian, youtube menyimpan data dalam file JSON. Saya tidak ingin memilah begitu banyak video dengan tangan saya dan saya mulai mencari cara untuk mengotomatisasi atau setidaknya menyederhanakan tugas ini.
Saya menemukan
artikel lama 15 tahun di Habré , yang menjelaskan cara mendapatkan jumlah penayangan video, tetapi dari saat publikasi youtube memperbarui API dan saya perlu mendapatkan sedikit data yang berbeda.
Dalam proses penyelesaian masalah menggunakan API YouTube dan tabel Google, ternyata tidak hanya mengekstraksi data dari daftar URL video yang telah disiapkan sebelumnya, tetapi juga untuk mem-parsing output youtube dengan kata kunci.
Karena sangat senang dengan hasilnya, saya memutuskan untuk berbagi pengalaman dan menjelaskan prosesnya secara lebih rinci.
Metode itu sendiri tentu tidak ideal. Ini bisa digambarkan sebagai solusi sederhana yang terburu-buru. Tetapi sampai saya mulai belajar Python (saya harap hari ini cepat atau lambat akan tiba) saya harus melakukan semua cara lama di tabel.
Persiapan
Agar parser berfungsi, seperti pada artikel asli, kita memerlukan script ImportJSON dan youtube API.
Imporjson
Unduh skrip dari
github dan instal ke tabel melalui alat >> skrip editor.
API Youtube
Kami mendapatkan API kami - kunci
Youtube Data API V3 di perpustakaan dan membuat kredensial untuk itu. Sebelumnya, tentu saja, kami membuat akun, jika Anda belum terdaftar di google cloud.
Informasi tentang video disimpan dalam file JSON, yang tersedia di tautan:
www.googleapis.com/youtube/v3/videos?id= {Video_ID} & key = {API_Key} & part = {Part_Parametr}
dimana
Video_ID - pengidentifikasi video
API_Key - kunci API yang Anda dapatkan di konsol
Part_Parametr - bagian dari file di mana informasi disimpan
Beberapa bagian file dapat terdiri dari beberapa jenis:
cuplikan - berisi hampir semua informasi dasar tentang video:
1. tanggal publikasi
2. judul video
3. nama saluran
4. id saluran
5. deskripsi di bawah video (Deskripsi)
6. kategori video (angka)
7. tag
contentDetails - berisi durasi dan resolusi video.
topicDetails - berisi kategori video dalam bentuk tautan Wikipedia dengan nama kategori, namun bagian ini tidak selalu diisi.
statistik1. dilihat
2. jumlah komentar
3. suka
4. tidak suka
Secara umum, ini adalah bagian utama yang mungkin Anda butuhkan, tetapi daftar lengkap, jika itu, ada
dalam bantuan .
Mengambil Data Daftar URL
Pertimbangkan karya parser menggunakan ulasan
badcomedian sebagai
contoh . Untuk mendapatkan informasi tentang video, kita hanya perlu pengenalnya (
Video_ID ), dalam hal ini
EOWa0fmSGs8 .
Kami mendapatkan dan menyusun informasi menggunakan rumus ImportJSON dan bahasa permintaan XPath.
Beginilah tampilan file JSON di server:

Rumus untuk mendapatkan jumlah tampilan di tabel:
= ImportJSON ('' https://www.googleapis.com/youtube/v3/videos?id=EOWa0fmSGs8&key= {API_Key} & part = statistics ''; "/ items / statistics / viewCount"; '' noHeaders '')
Pada prinsipnya, XPath mungkin tidak digunakan dalam permintaan, tetapi kemudian Anda akan mendapatkan seluruh konten file JSON, tanpa segmentasi berdasarkan parameter. Setelah membuat jumlah formula yang diperlukan dengan parameter XPath, Anda hanya akan mendapatkan data yang diperlukan, yang akan lebih mudah diproses.
Mendapatkan daftar video dengan kata kunci
Prinsip parsing output adalah sama seperti pada contoh di atas, tetapi struktur permintaan sedikit berubah.
Dalam hal ini, file JSON dengan hasil video terletak di tautan
www.googleapis.com/youtube/v3/search?part=snippet&q= {Your_Query} & type = video & key = {API_Key}
di mana parameter type menunjukkan dengan tepat apa yang kita dapatkan di output:
type = video - daftar video yang relevan dengan permintaan
type = channel - daftar saluran
type = playlist - daftar daftar putar
Anda juga dapat menentukan dalam permintaan:
1. tanggal publikasi atau rentang tanggal
2. wilayah dan bahasa pencarian
3. durasi video
4. jumlah hasil (standar 5, maksimum 50), dll.
Daftar lengkap parameter dan konstruktor permintaan tersedia di sini .
Untuk mendapatkan daftar ID untuk badcomedian, gunakan rumus:
= ImportJSON (" www.googleapis.com/youtube/v3/search?part=snippet&q=badcomedian&type=video&key= {API_Key}"; "/ items / id / videoId"; "'noHeaders' ')
ImportJSON bekerja dengan baik bersama dengan fungsi CONCEPT, yang memungkinkan kami, dengan mengubah berbagai parameter, untuk melakukan analisis massa atau penguraian video.
Contoh bagaimana tabel disusun:

Metode minus
Suatu kekurangan yang serius dari metode penguraian informasi ini adalah cepat habisnya batas harian permintaan API. Saya tidak menemukan cara untuk membatasi jumlah permintaan atau membuat panggilan yang konsisten ke API. Artinya, upaya untuk mengurai info pada 10+ kunci pada saat yang sama dijamin menyebabkan kesalahan - akhir dari batas kueri harian. Karenanya, Anda harus memecah kata kunci menjadi kelompok-kelompok kecil dan menyimpan hasilnya sebagai nilai.