Как найти канал RSS на YouTube?


13

YouTube официально поддерживает каналы RSS , но я сталкиваюсь с серьезными трудностями при поиске канала. Использование URL канала невозможно, по крайней мере, в Thunderbird. Похоже, что в настоящее время Firefox не может обнаружить канал (раньше он работал, но иногда это было ненадежно, и иногда приходилось обновлять страницу), и Google Chrome, насколько мне известно, не имеет встроенной поддержки RSS.

Есть метод для создания канала вручную , но он может больше не работать ( channel-external-idкажется, не существует в источнике всех каналов, channel_idвместо этого есть):

  1. Посмотреть исходный код страницы
  2. Посмотрите на следующий текст: channel-external-id
  3. Получить значение для этого элемента
  4. Замените это значение на этот URL:

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

Пример канала: https://www.youtube.com/user/SesameStreet/videos

Ответы:


10

На самом деле то, что вы предложили, это именно адрес RSS-канала, хотя он был немного изменен по сравнению с процедурой, описанной в вашем вопросе, есть правильная строка для поиска externalId.

Со сценарием

Следующий скрипт извлечет URL фида и выведет его на консоль:

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

Результат:

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

Где его сохранить

  1. Вы можете использовать его как пользовательский скрипт (например, с Greasemonkey или Tampermonkey ).
  2. Вы можете использовать его как букмарклет .
  3. Скопируйте код и вставьте его в консоль разработчика.

Примечание. Если вы выберете опции 1или 2- было бы удобнее заменить console.logкоманду на, alertчтобы получить всплывающее окно вместо сообщения на консоль.


Вручную

  1. Откройте нужную страницу канала YouTube.
  2. Откройте view-sourceэту страницу (одно из следующих):
    • Ctrl+ U.
    • Правый клик -> View page source.
    • Добавьте view-source:в начало URL в адресной строке.
  3. Поиск по термину externalId
  4. Сразу после этого будет случайный код (идентификатор канала) в виде: UCoookXUzPciGrEZEXmh4Jjg
  5. Добавьте код, который вы нашли в качестве суффикса, https://www.youtube.com/feeds/videos.xml?channel_id=и теперь это ваш канал RSS для этого канала.

rssUrlк сожалению, не существует в источнике каждого канала, например view-source:https://www.youtube.com/channel/UC0YagOInbZxj10gaWwb1Nag/и view-source:https://www.youtube.com/channel/UCEBTfxJ13zkpZVbZTF3aukg.
user598527

1
Я проверю это и
улучшу

Я нашел вещь, я обновлю свой ответ позже сегодня!
arieljannai

@ user598527 Обновлено :)
arieljannai

Спасибо за обновление. Мне не удалось установить букмарклет с помощью стандартного метода (перетаскивание кода на панель инструментов закладок). Исходя из моего опыта, букмарклеты начинаются с javascript:, по крайней мере, это поможет с процедурой установки браузера.
user598527

1

Упомянутый вами метод в настоящее время работает, но только в некоторых случаях точный текст, который нужно искать, это data-channel-external-id, и он работает, например, в IE11. Гораздо проще получить <channel-id>URL канала, который составлен так

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

В любом случае, существует гораздо более поддерживаемый способ сделать это, и это отражает тот факт, что YouTube нравится, когда вы подписываетесь на каналы, которые хотите связать через RSS-канал.

Если вы подписались на канал, для которого вы ищете канал RSS, вы можете найти его в списке на странице «Управление подпиской» , где вы можете прокручивать страницу вниз до тех пор, пока не найдете кнопку «Экспорт в RSS-ридеры» : нажатие на эту кнопку приведет к позволяют загружать XML-файл с именами каналов и RSS-каналами для всех подписанных каналов.

Эти RSS-каналы всегда будут обновляться, если что-то изменится в том, как YouTube их представит.


1

Откройте консоль с помощью F12и выполните

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

Я получаю TypeError: window.ytInitialData.metadata is undefined ошибку при запуске в Firefox. Должна ли эта команда работать на всех страницах канала?
user598527

Хм, кажется, что это не работает на всех страницах
goweon
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.