Jak znaleźć kanał RSS kanału na YouTube?

14

YouTube oficjalnie obsługuje kanały RSS kanału , ale mam poważne trudności ze znalezieniem kanału. Używanie adresu URL kanału nie jest możliwe, przynajmniej w Thunderbird. Wygląda na to, że Firefox obecnie nie jest w stanie wykryć kanału (kiedyś działał, ale nieco niewiarygodne i odświeżanie strony było czasami konieczne), a Google Chrome nie ma natywnej obsługi RSS według mojej wiedzy.

Istnieje metoda ręcznego tworzenia kanału , ale może on już nie działać ( channel-external-idwygląda na to, że nie istnieje w źródle wszystkich kanałów, channel_idzamiast tego):

  1. Wyświetl kod źródłowy strony
  2. Poszukaj następującego tekstu: channel-external-id
  3. Uzyskaj wartość dla tego elementu
  4. Zamień tę wartość na ten adres URL:

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

przykładowy kanał: https://www.youtube.com/user/SesameStreet/videos

użytkownik598527
źródło

Odpowiedzi:

11

Właściwie to, co zasugerowałeś, to dokładnie adres kanału RSS, chociaż został nieco zmieniony w stosunku do procedury opisanej w twoim pytaniu, istnieje poprawny ciąg do przeszukania externalId.

Ze skryptem

Poniższy skrypt wyodrębni adres URL kanału i wyśle ​​go do konsoli:

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

Wynik:

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

Gdzie to zapisać

  1. Możesz użyć go jako skryptu użytkownika ( na przykład z Greasemonkey lub Tampermonkey ).
  2. Możesz użyć go jako zakładki .
  3. Skopiuj kod i wklej go do konsoli programisty.

Uwaga: Jeśli wybierzesz opcje 1lub 2- wygodniej byłoby zastąpić console.logpolecenie, alertaby otrzymać wyskakujące okienko zamiast komunikatu do konsoli.


Ręcznie

  1. Otwórz żądaną stronę kanału YouTube.
  2. Otwórz view-sourcetę stronę (jedną z poniższych):
    • Ctrl+ U.
    • Kliknij prawym przyciskiem myszy -> View page source.
    • Dodaj view-source:na początku adresu URL na pasku adresu.
  3. Wyszukaj termin externalId
  4. Zaraz po nim pojawi się losowy kod (identyfikator kanału) w postaci: UCoookXUzPciGrEZEXmh4Jjg
  5. Dodaj kod, który znalazłeś jako przyrostek, https://www.youtube.com/feeds/videos.xml?channel_id=a teraz jest to Twój kanał RSS dla tego kanału.
arieljannai
źródło
rssUrlniestety nie istnieje w źródle każdego kanału, na przykład view-source:https://www.youtube.com/channel/UC0YagOInbZxj10gaWwb1Nag/i view-source:https://www.youtube.com/channel/UCEBTfxJ13zkpZVbZTF3aukg.
user598527,
1
Sprawdzę to i
poprawię
Znalazłem rzecz, dzisiaj zaktualizuję swoją odpowiedź!
arieljannai
@ user598527 Zaktualizowano :)
arieljannai
Dziękujemy za aktualizację. Nie udało mi się zainstalować bookmarkletu przy użyciu standardowej metody (przeciągając kod na pasek narzędzi zakładek). Z mojego doświadczenia javascript:wynika, że zakładki zaczynają się od , przynajmniej pomoże to w procedurze instalacji przeglądarki.
user598527,
1

Wspomniana metoda obecnie działa, ale tylko w niektórych okolicznościach dokładny tekst do wyszukania to data-channel-external-id i działa na przykład w IE11. Znacznie łatwiej jest uzyskać <channel-id>adres URL kanału, który składa się w ten sposób

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

W każdym razie istnieje o wiele bardziej obsługiwany sposób, aby to zrobić, i odzwierciedla to fakt, że YouTube lubi subskrybować kanały, które chcesz połączyć za pośrednictwem kanału RSS.

Jeśli subskrybujesz kanał, którego szukasz kanał RSS, możesz go znaleźć na stronie Zarządzaj subskrypcją , tam możesz przewinąć w dół, aż znajdziesz przycisk „Eksportuj do czytników RSS” : kliknięcie tego przycisku spowoduje pozwalają pobrać plik XML zawierający nazwy kanałów i kanały RSS dla wszystkich subskrybowanych kanałów.

Te kanały RSS będą zawsze aktualizowane, jeśli coś zmieni się w sposobie ich ujawnienia przez YouTube.

mrq
źródło
1

Otwórz konsolę F12i uruchom

window["ytInitialData"].metadata.channelMetadataRenderer.rssUrl
goweon
źródło
Pojawia się TypeError: window.ytInitialData.metadata is undefined błąd , gdy uruchomiony w Firefoksie. Czy to polecenie powinno działać na wszystkich stronach kanału?
user598527,
Hmm, wygląda na to, że nie działa na wszystkich stronach
goweon