Как получить RSS-канал канала Youtube после 20 апреля 2015 года (без API v3)?
Теперь, когда API v2 исчез, как можно было бы получить простой RSS-канал канала без API v3? Я открыт для каналов Yahoo или любого обходного пути, который проще, чем создание приложения для API v3, если целью является средство чтения каналов. Мне нужен только RSS-канал. Он был доступен публично до сих пор и может прекратиться в любую минуту (я думаю). Так почему бы больше не разрешать доступ к нему без ключа API.
15 answers
В Читатель RSS раздел https://support.google.com/youtube/answer/6098135?hl=en существует возможность экспортировать ваши подписки в файл OPML. Затем, просмотрев содержимое OPML, вы можете извлечь каналы, и структура каждого канала такова:
https://www.youtube.com/feeds/videos.xml?channel_id=XXXX
Таким образом, вы можете создавать новые каналы из этой структуры, если знаете идентификатор канала. Такого рода каналы не получают "https://youtube.com/devicesupport "ошибка, поэтому я ожидаю, что они собираются продолжать работать.
Вы можете получить каналы следующим образом:
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNELID
https://www.youtube.com/feeds/videos.xml?user=USERNAME
https://www.youtube.com/feeds/videos.xml?playlist_id=YOUR_YOUTUBE_PLAYLIST_NUMBER
Но формат JSON, который раньше поддерживался (с дополнительным параметром &alt=JSON
), больше не поддерживается.
Кроме того, вы можете запросить ключ API для публичного доступа к вашим видео на YouTube с вашей консоли разработчика и получить видео YouTube, плейлисты в формате JSON, например:
- Get Channels:
https://www.googleapis.com/youtube/v3/channels?part=snippet%2CcontentDetails&forUsername={YOUR_USER_NAME}&key={YOUR_API_KEY}
- Get Playlists:
https://www.googleapis.com/youtube/v3/playlists?part=snippet%2CcontentDetails&channelId={YOUR_CHANNEL_ID}&key={YOUR_API_KEY}
- Get Playlist Videos:
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails%2Cstatus&playlistId={YOUR_PLAYLIST_ID}&key={YOUR_API_KEY}
Дополнительная информация из Документов YouTube v3.
В you tube нажмите на подписки на левой панели. Это откроет все ваши подписки в центре страницы. Прокрутите вниз, и вы найдете кнопку "Экспорт в программу чтения RSS", которая создает XML-файл всех ваших подписок. Я сделал это и добавил его в свой любимый канал для чтения rss.
Если вы проверите страницу любого канала Youtube, внутри <head>
вы найдете метаузел rss, подобный этому:
<link rel="alternate"
type="application/rss+xml" title="RSS"
href="https://www.youtube.com/feeds/videos.xml?channel_id=UCn8zNIfYAQNdrFRrr8oibKw">
Это должно предоставить вам необходимые данные.
Получите идентификатор канала, выполнив поиск атрибута data-channel-external-id в исходном коде страницы канала YouTube. (благодаря хелку).
Этот код захватит все заголовки и идентификаторы видео из ленты и выгрузит их в массив:
$channel_id = 'XXX'; // put the channel id here
$youtube = file_get_contents('https://www.youtube.com/feeds/videos.xml?channel_id='.$channel_id);
$xml = simplexml_load_string($youtube, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$youtube = json_decode($json, true);
$yt_vids = array();
$count = 0;
foreach ($youtube['entry'] as $k => $v) {
$yt_vids[$count]['id'] = str_replace('http://www.youtube.com/watch?v=', '', $v['link']['@attributes']['href']);
$yt_vids[$count]['title'] = $v['title'];
$count++;
}
print_r($yt_vids);
Я создал небольшой PHP-скрипт, который очищает URL-адрес Youtube для ссылок на видео, а затем выводит их в виде канала atom: https://gist.github.com/Skalman/801436d9693ff03bc4ce
URL-адреса, такие как https://www.youtube.com/user/scishow/videos работа.
Предостережения:
- Инструмент не удаляет даты
- Списки воспроизведения не будут включать более 100 видео
- Списки воспроизведения включают ссылку "воспроизвести все"
- Автор правильно задан только для каналы (например, не плейлисты)
- Возможно, Youtube заблокирует вас, если вы будете использовать это слишком часто (но, надеюсь, ограничения достаточно высоки)
- Вероятно, еще несколько...
Также существует RSS-мост, который может извлекать RSS-каналы из множества сервисов, таких как Twitter, Google+, Flickr, Youtube, Identi.ca, и т.д.
Источник: https://github.com/sebsauvage/rss-bridge
Демонстрационный сервер: https://bridge.suumitsu.eu/
Попробуйте использовать этот URL-адрес: https://www.youtube.com/feeds/videos.xml?user=USERNAME
Для меня отлично работает.
Из Моего Поста В Блоге: http://tcodesblog.blogspot.com/search/label/howtofindyouryoutubechannelfeed
КАК НАЙТИ ЛЕНТУ ВАШЕГО КАНАЛА YOUTUBE
В прежние времена это было легко (2009), но сейчас найти его гораздо сложнее (2012 - настоящее время). Вот быстрый способ найти свой новый канал с вашего канала YouTube. Не забывайте правильно следовать списку!Сначала найдите свой идентификатор канала: Вы можете сделать это, перейдя на свой канал YouTube на панели мониторинга
Скопируйте идентификатор канала : Ваш идентификатор канала можно найти при посещении вашего канала YouTube с панели мониторинга
Скопируйте свой идентификатор канала: Скопируйте свой идентификатор канала и замените идентификатор канала здесь ниже на свой идентификатор канала:
https://www.youtube.com/feeds/videos.xml?channel_id=channelidgoeshere
Скопируйте всю ленту канала YouTube и создайте упрощенный канал: Вы можете сделать это, создав более короткую ссылку на канал в FeedBurner по адресу
http://www.feedburner.com/
(Требуется учетная запись Google. Бесплатно в использовании.), который также часть Google. Создайте новую ленту (выберите Я подкастер!, чтобы ваши видео появлялись в ленте и чтобы сделать вашу ленту совместимой с другими читателями ленты, такими как: Digg Reader, приложение Apple iPhone Apple News, приложение подкастов Apple iPhone, Feedly и т. Д.) - ИЛИ - отредактируйте существующую, скопировав всю ленту канала YouTube, а затем нажмите Сохранить сведения о ленте как обычноВаша лента канала YouTube теперь работает, и ваши видео можно увидеть в файле ленты непосредственно на ваш канал для сжигания корма. Мой находится на YouTube в качестве канала в
https://www.youtube.com/feeds/videos.xml?channel_id=UCvFR6YxwnYfLt_QqRFk_r3g
и в FeedBurner в качествеhttp://feeds.feedburner.com/youtube/warrenwoodhouse
с моими видео, которые отображаются только в текстовом формате, например, так как мне нужно обновить свой, чтобы показать мои видео. Вы можете изменять различные настройки в FeedBurner и делать другие вещи, поэтому стоит попробовать, так как он бесплатный и простой в использовании. Я настоятельно рекомендую использовать FeedBurner или другую службу создания каналов, однако FeedBurner - ваш лучший выбор, поскольку он также включает механизм подписки на перекрестный канал (USM - Универсальный механизм подписки), что означает, что ваш канал можно читать с любого совместимого устройства, такого как компьютер, мобильный телефон (с установленным правильным приложением), через более старый веб-браузер (например, Internet Explorer, который поддерживает веб-фрагменты и каналы RSS/Atom/XML).
Ваш канал также можно открыть в приложении Apple iPhone "Новости Apple" и приложении "Подкасты Apple iPhone" на вашем Apple iPhone, Apple iPod Touch и Apple iPad, если вы правильно настроили USM (Универсальный Механизм подписки). Как только это вступит в силу, ваш канал можно будет просматривать с помощью различных сервисов и устройств.
Ваш канал в FeedBurner позволяет вам создать подписку по электронной почте, Аниматор заголовков (который показывает вам, как ссылка на последнюю публикацию), а также количество подписчиков, Чиклеты и другие интересные вещи.
Я надеюсь, что этот ответ окажется полезным, и если вы хотите увидеть еще несколько классных потрясающих методов кодирования от меня, пожалуйста, не стесняйтесь посетить мой веб-сайт T-Codes по адресу http://warrenwoodhouse.webs.com/codes
для еще много чего.
Я создал пример каналов Yahoo здесь.
http://pipes .yahoo.com/pipes/pipe.info?_id=6eeff0110a81f2ab94e8472620770b11
Вы можете запустить этот канал, нажав "Запустить канал" без заполнения ключа API. Но вы должны предоставить свой собственный ключ API и идентификатор канала (который можно получить через API каналов) при клонировании. Хотел автоматизировать получение идентификатора канала по имени пользователя YouTube, но его нелегко передать по каналу.
Я создал пакетный скрипт, который создает RSS-канал ваших новых видео по подписке. Вам не нужен ключ API. Скрипт использует 2 внешних инструмента: YouTube-DL и Xidel.
В любом случае, прочитайте следующую тему и перейдите к сообщению 98, чтобы загрузить скрипт: http://code.google.com/p/gdata-issues/issues/detail?id=3946#c98
Я надеюсь, что кто-нибудь закодирует это на php, python, javascript, powershell или bash.
Я думаю, что в ответе YouTube есть некоторые изменения, поэтому я внес некоторые изменения, чтобы получить идентификатор канала из rss-канала с помощью Curl.
$channel_id = 'XXXXXXXX'; // put the channel id here
//using curl
$url = 'https://www.youtube.com/feeds/videos.xml?channel_id='.$channel_id.'&orderby=published';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
//curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($ch);
curl_close($ch);
$response=simplexml_load_string($response);
$json = json_encode($response);
$youtube= json_decode($json, true);
$count = 0;
if(isset($youtube['entry']['0']) && $youtube['entry']['0']!=array())
{
foreach ($youtube['entry'] as $k => $v) {
$yt_vids[$count]['id'] = str_replace('http://www.youtube.com/watch?v=', '', $v['link']['@attributes']['href']);
$yt_vids[$count]['title'] = $v['title'];
$count++;
}
}
else
{
$yt_vids[$count]['id']=str_replace('http://www.youtube.com/watch?v=', '', $youtube['entry']['link']['@attributes']['href']);
$yt_vids[$count]['title']=$youtube['title'];
}
echo "<pre>";
print_r($yt_vids);
Я нашел расширение Chrome с именем Youtube RSS-ify, которое вставляет значок RSS на видео, каналах и страницах навигации. Это было именно то, что я искал.
Значки выглядят следующим образом:
Я бы предложил использовать отличный rss-анализатор. Многие из них доступны, но вы можете попробовать http://simplepie.org /, один из лучших, которые я использовал для своих личных проектов.
Это довольно хорошо документировано с некоторыми примерами.
Пример использования
Примечание: Используемый юмор колледжа на канале YouTube, вы можете получить его на самой странице канала
<?php
include_once('../autoloader.php');
// Parse it
$feed = new SimplePie();
$feed->set_feed_url('https://www.youtube.com/feeds/videos.xml?channel_id=UCPDXXXJj9nax0fr0Wfc048g');
$feed->enable_cache(false);
$feed->init();
$items = $feed->get_items();
foreach ($items as $item)
{
echo $item->get_title() . "\n";
}
var_dump($feed->get_item_quantity());
Самый простой способ получить идентификатор канала:
Откройте Менеджер подписок (левая панель, внизу под подписками) и нажмите на нужного пользователя.
URL-адрес будет иметь вид:
https://www.youtube.com/channel/XXXXXXXXXXXXXXXXX
Таким образом, URL-адрес канала должен быть:
https://www.youtube.com/feeds/videos.xml?channel_id=XXXXXXXXXXXXXXXXX
Примечание: Лучше использовать идентификаторы каналов, а не имена пользователей, потому что имена пользователей могут измениться.