YouTube'da kanal RSS beslemesi nasıl bulunur?


14

YouTube kanal RSS özet akışlarını resmi olarak destekliyor , ancak özet akışını bulmakta ciddi zorluklarla karşılaşıyorum. Kanal URL'sini kullanmak en azından Thunderbird'de mümkün değildir. Firefox şu anda feed'i algılayamıyor gibi görünüyor (geçmişte çalışıyordu, ancak biraz güvenilmez ve sayfayı yenilemek bazen gerekliydi) ve Google Chrome'un bildiklerim için yerel bir RSS desteği yok.

Manuel olarak bir feed oluşturmak için bir yöntem vardır , ancak artık çalışmayabilir ( channel-external-idtüm kanalların kaynağında var görünmüyor, channel_idbunun yerine):

  1. Sayfanın kaynak kodunu görüntüleyin
  2. Aşağıdaki metni arayın: channel-external-id
  3. Bu öğenin değerini alın
  4. Bu değeri bu URL ile değiştirin:

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

örnek kanal: https://www.youtube.com/user/SesameStreet/videos

Yanıtlar:


11

Aslında önerdiğiniz, tam olarak RSS feed adresidir, ancak sorunuzda açıklanan prosedürden biraz değiştirilmiş olsa da, aranacak doğru dize vardır externalId.

Senaryo ile

Aşağıdaki komut dosyası feed URL'sini alır ve konsola çıktılar:

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;
    }
}

Sonuç:

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

Nerede saklanır

  1. Kullanıcı komut dosyası olarak kullanabilirsiniz ( örneğin Greasemonkey veya Tampermonkey ile).
  2. Bir Yer İşareti olarak kullanabilirsiniz .
  3. Kodu kopyalayın ve geliştirici konsoluna yapıştırın.

Not: Seçenekleri seçerseniz 1veya 2- konsola mesaj göndermek yerine pop-up almak için console.logkomutu değiştirmek daha uygun olur alert.


el ile

  1. İstediğiniz YouTube kanalı sayfasını açın.
  2. view-sourceBu sayfayı açın (aşağıdakilerden biri):
    • Ctrl+ U.
    • Sağ tıklayın -> View page source.
    • view-source:Adres çubuğundaki URL'nin başına ekleyin .
  3. Terimi arayın externalId
  4. Hemen ardından, şu şekilde rastgele bir kod (kanal kimliği) olacaktır: UCoookXUzPciGrEZEXmh4Jjg
  5. Sonek olarak bulduğunuz kodu ekleyin https://www.youtube.com/feeds/videos.xml?channel_id=ve şimdi bu kanal için RSS beslemeniz.

rssUrlmaalesef her kanalın kaynağında mevcut değildir, örneğin view-source:https://www.youtube.com/channel/UC0YagOInbZxj10gaWwb1Nag/ve view-source:https://www.youtube.com/channel/UCEBTfxJ13zkpZVbZTF3aukg.
user598527

1
Kontrol edeceğim ve cevabımı geliştireceğim, teşekkürler
arieljannai

Bir şey buldum, cevabımı bugün daha sonra güncelleyeceğim!
arieljannai

@ user598527 Güncellendi :)
arieljannai

Güncelleme için teşekkürler. Yer işaretini standart yöntemi (kodu yer işaretleri araç çubuğuna sürükleyerek) kullanarak yükleyemedim . Deneyimlerime dayanarak javascript:, en azından bu tarayıcı yükleme prosedürüne yardımcı olacaktır.
user598527

1

Bahsettiğiniz yöntem şu anda çalışıyor, ancak yalnızca bazı durumlarda, aranacak tam metin veri kanalı-harici-id'dir ve örneğin IE11'de çalışır. <channel-id>Kanal URL'sine girmek çok daha kolay.

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

Her neyse, bunu yapmanın daha uzun desteklenen bir yolu var ve YouTube'un RSS beslemesi yoluyla bağlamak istediğiniz kanallara abone olmanızı sevdiği gerçeğini yansıtıyor.

RSS beslemesini aradığınız kanala abone olduysanız, Aboneliği Yönet sayfanızda listelenmiş olarak bulabilirsiniz, "RSS okuyucularda dışa aktar" düğmesini bulana kadar aşağıya doğru ilerleyebilirsiniz : bu düğmeye tıklamak abone olunan tüm kanallar için kanal adlarına ve RSS yayınlarına sahip bir XML dosyası indirmenize olanak tanır.

YouTube'un bunları gösterme biçiminde bir değişiklik olursa bu RSS yayınları her zaman güncellenir.


1

Konsolu ile aç F12ve çalıştır

window["ytInitialData"].metadata.channelMetadataRenderer.rssUrl

Ben olsun TypeError: window.ytInitialData.metadata is undefined hatayı Firefox'ta çalıştırırken. Bu komut bir kanalın tüm sayfalarında mı çalışmalı?
user598527

Hmm, tüm sayfalarda çalışmıyor gibi görünüyor
goweon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.