Bagaimana cara menemukan umpan RSS saluran di YouTube?

13

YouTube secara resmi mendukung umpan RSS saluran , tetapi saya menghadapi kesulitan besar dalam menemukan umpan. Menggunakan URL saluran tidak mungkin setidaknya di Thunderbird. Firefox tampaknya saat ini tidak dapat mendeteksi umpan (dulu berfungsi di masa lalu, tetapi agak tidak dapat diandalkan dan menyegarkan laman sesekali diperlukan) dan Google Chrome tidak memiliki dukungan RSS asli untuk pengetahuan saya.

Ada metode untuk membuat umpan secara manual , tetapi mungkin tidak lagi berfungsi ( channel-external-idtampaknya tidak ada di sumber semua saluran, ada di sana channel_id):

  1. Lihat kode sumber halaman
  2. Cari teks berikut: channel-external-id
  3. Dapatkan nilai untuk elemen itu
  4. Ganti nilai itu ke dalam URL ini:

https://www.youtube.com/feeds/videos.xml?channel_id=UCBcRF18a7Qf58cCRy5xuWwQ

saluran contoh: https://www.youtube.com/user/SesameStreet/videos

pengguna598527
sumber

Jawaban:

10

Sebenarnya apa yang Anda sarankan, sebenarnya adalah alamat umpan RSS, meskipun sedikit diubah dari prosedur yang dijelaskan dalam pertanyaan Anda, ada string yang benar untuk dicari externalId.

Dengan skrip

Skrip berikut akan mengekstrak URL umpan dan akan menampilkannya ke konsol:

for (var arrScripts = document.getElementsByTagName('script'), i = 0; i < arrScripts.length; i++) {
    if (arrScripts[i].textContent.indexOf('externalId') != -1) {
        var channelId = arrScripts[i].textContent.match(/\"externalId\"\s*\:\s*\"(.*?)\"/)[1];
        var channelRss = 'https://www.youtube.com/feeds/videos.xml?channel_id=' + channelId;
        var channelTitle = document.title.match(/\(?\d*\)?\s?(.*?)\s\-\sYouTube/)[1];
        console.log('The rss feed of the channel \'' + channelTitle + '\' is:\n' + channelRss);
        break;
    }
}

Hasil:

The rss feed of the channel 'Sesame Street' is:
https://www.youtube.com/feeds/videos.xml?channel_id=UCoookXUzPciGrEZEXmh4Jjg

Tempat menyimpannya

  1. Anda dapat menggunakannya sebagai skrip pengguna (misalnya dengan Greasemonkey atau Tampermonkey ).
  2. Anda dapat menggunakannya sebagai Bookmarklet .
  3. Salin kode dan rekatkan ke konsol pengembang.

Catatan: Jika Anda memilih opsi 1atau 2- akan lebih mudah untuk mengganti console.logperintah dengan alertuntuk mendapatkan popup daripada pesan ke konsol.


Secara manual

  1. Buka halaman saluran YouTube yang diinginkan.
  2. Buka view-sourcehalaman itu (salah satu dari yang berikut):
    • Ctrl+ U.
    • Klik kanan -> View page source.
    • Tambahkan view-source:ke awal url di bilah alamat.
  3. Cari istilahnya externalId
  4. Tepat setelah itu, akan ada kode acak (id saluran) dalam bentuk: UCoookXUzPciGrEZEXmh4Jjg
  5. Tambahkan kode yang Anda temukan sebagai sufiks https://www.youtube.com/feeds/videos.xml?channel_id=dan sekarang itu umpan RSS Anda untuk saluran itu.
arieljannai
sumber
rssUrlsayangnya tidak ada di sumber setiap saluran, misalnya view-source:https://www.youtube.com/channel/UC0YagOInbZxj10gaWwb1Nag/dan view-source:https://www.youtube.com/channel/UCEBTfxJ13zkpZVbZTF3aukg.
user598527
1
Saya akan memeriksanya, dan meningkatkan jawaban saya, terima kasih
arieljannai
Saya menemukan hal itu, saya akan memperbarui jawaban saya hari ini!
arieljannai
@ user598527 Diperbarui :)
arieljannai
Terima kasih telah memperbarui. Saya belum dapat menginstal bookmarklet dengan menggunakan metode standar (menyeret kode ke bilah alat bookmark). Berdasarkan pengalaman saya, bookmarklet mulai dengan javascript:, setidaknya itu akan membantu dengan prosedur pemasangan browser.
user598527
1

Metode yang Anda sebutkan saat ini berfungsi, tetapi hanya dalam beberapa keadaan, teks yang tepat untuk dicari adalah data-channel-external-id dan berfungsi di IE11, misalnya. Jauh lebih mudah untuk mendapatkan <channel-id>URL saluran, yang disusun seperti ini

https://www.youtube.com/channel/<channel-id>

Bagaimanapun, ada cara yang jauh lebih didukung untuk melakukan ini, dan itu mencerminkan fakta bahwa YouTube menyukai Anda untuk berlangganan saluran yang ingin Anda tautkan melalui umpan RSS.

Jika Anda berlangganan saluran yang Anda cari umpan RSS, Anda dapat menemukannya terdaftar di halaman Kelola Berlangganan Anda , di sana Anda dapat menggulir ke bawah sampai Anda menemukan tombol "Ekspor dalam pembaca RSS" : mengklik tombol itu akan memungkinkan Anda mengunduh file XML yang memiliki nama saluran dan umpan RSS untuk semua saluran berlangganan.

Umpan RSS itu akan selalu diperbarui jika ada perubahan dalam cara YouTube mengeksposnya.

mrq
sumber
1

Buka konsol dengan F12dan jalankan

window["ytInitialData"].metadata.channelMetadataRenderer.rssUrl
goweon
sumber
Saya mendapatkan TypeError: window.ytInitialData.metadata is undefined kesalahan saat menjalankan di Firefox. Haruskah perintah ini bekerja pada semua halaman saluran?
user598527
Hmm, sepertinya itu tidak berfungsi di semua halaman
goweon