web-dev-qa-db-ja.com

2015年4月20日(v3 APIなし)以降にYouTubeチャンネルRSSフィードを取得する方法は?

API v2がなくなったので、v3 APIなしでチャンネルの単純なRSSフィードを取得する方法は何でしょうか?ターゲットがフィードリーダーである場合、v3 API用のアプリケーションを作成するよりも簡単なYahoo Pipesまたは回避策を受け入れています。 RSSフィードのみが必要です。これは今まで公に利用可能でしたが、今はいつでも中止できます(私は思う)。それでは、APIキーなしでアクセスできないようにしましょう。

62

RSS Readerセクション https://support.google.com/youtube/answer/6098135?hl=en サブスクリプションをOPMLファイルにエクスポートするオプション。次に、OPMLの内容を見て、フィードを抽出できます。各フィードの構造は次のとおりです。

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

そのため、チャンネルIDがわかっている場合、この構造から新しいフィードを生成できます。この種のフィードは「 https://youtube.com/devicesupport 」エラーを受け取っていないため、引き続き機能することを期待しています。

96
AitorF

次のようなフィードを取得できます。

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)はサポートされなくなりました。

さらに、 開発者コンソール からYouTubeビデオへのパブリックアクセス用のAPIキーをリクエストし、次のようなJSON形式のYouTubeビデオ、プレイリストを取得できます。

- 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ドキュメント からの詳細情報。

56
Primoz Rome

you Tubeで、左側のペインのサブスクリプションをクリックします。これにより、ページの中央にすべてのサブスクリプションが開きます。下にスクロールすると、すべてのサブスクリプションのxmlファイルを生成する[RSSリーダーにエクスポート]ボタンが表示されます。これを実行し、お気に入りのRSSリーダーにフィードリーで追加しました。

10
Halo Jones

Youtubeチャンネルページを調べると、<head>内に次のようなrssメタノードがあります。

<link rel="alternate" 
      type="application/rss+xml" title="RSS"     
      href="https://www.youtube.com/feeds/videos.xml?channel_id=UCn8zNIfYAQNdrFRrr8oibKw">

これにより、必要なデータが提供されます。

6
Matt Way

YouTubeチャンネルページのソースコードで属性data-channel-external-idを検索して、チャンネルIDを取得します。 (helqに感謝)。

このコードは、フィードからすべてのビデオタイトルとIDを取得し、配列にダンプします。

$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);
4
daygloink

私のブログ投稿から:http://tcodesblog.blogspot.com/search/label/howtofindyouryoutubechannelfeed


YouTubeチャンネルフィードを見つける方法

  1. 最初にあなたを見つけます チャンネルID:これを行うには、ダッシュボードのYouTubeチャンネルにアクセスします

  2. をコピー チャンネルID: きみの チャンネルID ダッシュボード内からYouTubeチャンネルにアクセスすると見つけることができます

  3. あなたのコピー チャンネルID:あなたのコピー チャンネルID そして交換 ここに 以下であなたと チャンネルIDhttps://www.youtube.com/feeds/videos.xml?channel_id=channelidgoeshere

  4. YouTubeチャンネルフィード全体をコピーして、簡易フィードを作成します。これも、Googleの一部であるhttp://www.feedburner.com/(Googleアカウントが必要です。無料で使用できます)でFeedBurnerに短いフィードリンクを作成することで行えます。新しいフィードを作成(選択 私はポッドキャスターです! 自分の動画がフィードに表示されることを確認し、Digg Reader、Apple iPhone Apple News App、Apple iPhoneなどの他のフィードリーダーとフィードを互換性があるようにします。 Podcastsアプリ、Feedlyなど)-または-YouTubeチャンネルフィード全体をコピーして既存のものを編集し、クリックします フィードの詳細を保存 普段通り

  5. YouTubeチャンネルフィードが機能するようになり、FeedBurnerフィードのフィードファイルで動画を直接見ることができます。私の動画はhttps://www.youtube.com/feeds/videos.xml?channel_id=UCvFR6YxwnYfLt_QqRFk_r3gのフィードとしてYouTubeにあり、FeedBurnerのhttp://feeds.feedburner.com/youtube/warrenwoodhouseにはフィードがあります。例として、動画をテキスト形式でのみ表示します。 FeedBurnerでさまざまな設定を変更したり、他のことを行ったりすることができます。無料で使いやすいので、試してみる価値があります。 FeedBurnerまたは別のフィード作成サービスを使用することを強くお勧めしますが、FeedBurnerにはクロスフィードサブスクリプションサービスメカニズム(USM-ユニバーサルサブスクリプションメカニズム)も含まれているため、FeedBurnerは最善の方法です。コンピューター、携帯電話(正しいアプリがインストールされている)、古いWebブラウザー(WebスライスとRSS/Atom/XMLフィードをサポートするInternet Explorerなど)を介して。

フィードは、Apple iPhone Apple News AppおよびApple iPhone Podcasts AppでApple iPhone、Apple iPod TouchおよびApple iPad(設定をUSM(ユニバーサルサブスクリプションメカニズム)に正しく設定している場合)。これが有効になると、フィードをさまざまなサービスやデバイスで表示できます。

FeedBurnerのフィードでは、メール購読、Headline Animator(最新の投稿へのリンクを表示)、購読者、Chiclets、その他のクールなものを作成できます。

この答えが役に立つことを願っています。もしあなたがもっとクールで素晴らしいコーディングのプラクティスを見たいなら、もっとたくさんのことについてT_Codesのウェブサイトhttp://warrenwoodhouse.webs.com/codesをチェックしてください。

2
warrenwoodhouse

また、Twitter、Google +、Flickr、Youtube、Identi.caなどの多くのサービスからRSSフィードを抽出できるRSS-Bridgeが存在します。

ソース: https://github.com/sebsauvage/rss-bridge

デモサーバー: https://bridge.suumitsu.eu/

2
Albirew

ビデオリンクのYoutube URLをスクレイピングし、PHPフィードとして出力する小さなatomスクリプトを作成しました: https://Gist.github。 com/Skalman/801436d9693ff03bc4ce

https://www.youtube.com/user/scishow/videos などのURL。

警告:

  • ツールは日付を取得しません
  • 再生リストには10​​0本を超える動画は含まれません
  • プレイリストには「すべて再生」リンクが含まれます
  • 作成者はチャンネルに対してのみ正しく設定されています(プレイリストではないなど)
  • たぶん、これを使いすぎるとYoutubeがあなたをブロックするでしょう(しかし、うまくいけば制限が十分に高いことを願っています)
  • おそらくさらにいくつか...
2
Dan

次のURLを使用してみてください: https://www.youtube.com/feeds/videos.xml?user=USERNAME

私にとってはうまくいきます。

2
Rolland

ここでYahoo Pipesの例を作成しました。
http://pipes.yahoo.com/pipes/pipe.info?_id=6eeff0110a81f2ab94e8472620770b11

APIキーを入力せずに「パイプを実行」を押すと、このパイプを実行できます。ただし、クローンを作成するときは、独自のAPIキーとチャンネルID(チャンネルAPIから取得可能)を提供する必要があります。 YouTubeユーザー名によるchannelIdの取得を自動化したいが、パイプするのは簡単ではなかった。

1
agektmr

新しいサブスクリプションビデオのRSSフィードを作成するバッチスクリプトを作成しました。 APIキーは必要ありません。このスクリプトは、YouTube-DLとXidelの2つの外部ツールを使用します。

とにかく、次のスレッドを読み、投稿98に移動してスクリプトをダウンロードします。 http://code.google.com/p/gdata-issues/issues/detail?id=3946#c98

誰かがこれをphp、python、javascript、powershell、またはbashにコーディングすることを願っています。

1
MatrixView

YouTubeの応答にいくつかの変更があると思うので、Curlを使用してrssフィードからチャンネルIDを取得するためにいくつかの変更を行います。

$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);
1
Arshad Shaikh

以下のコードを使用して、Youtubeフィードを wordpressカスタムフィールド「ACFプラグイン」FancyBox と統合しました

    <?php  
    $channel_id = get_field('youtube_chanel_id'); //ACF text field
    if ($channel_id){ // if channel_id not empty -- START
    $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);
        echo'<div class="col-md-12 youtube-videos-feed">';  
        foreach ($youtube['entry'] as $k => $v) {
            $id = str_replace(array("yt:video:"), "", $v['id']); // Remove "yt:video:" from ID value
            //$date = $v['updated']; // video updated date (disabled for now)
            $title = $v['title']; // video title
            echo '<a class="with-video" href="https://www.youtube.com/watch?v=',$id,'&autoplay=1&rel=0&controls=0&showinfo=0&modestbranding=0" data-fancybox="videos"  data-caption="',$title,'" title="',$title,'" >
                <div class="col-md-3 main-image post-image img-fancy">
                    <img src="https://img.youtube.com/vi/',$id,'/0.jpg" alt="',$title,'" >
                </div>
            </a>';
        }
        echo'</div>';
    } // if channel_id not empty -- END
 ?>
1
Abouasy

ビデオ、チャンネル、ナビゲーションページにRSSアイコンを挿入する Youtube RSS-ify という名前のChrome拡張機能を見つけました。それはまさに私が探していたものでした。

Youtube RSS-ify extension screenshot

アイコンは次のようになります。

Youtube RSS-ify RSS icon

0
Adam Spriggs