API v2がなくなったので、v3 APIなしでチャンネルの単純なRSSフィードを取得する方法は何でしょうか?ターゲットがフィードリーダーである場合、v3 API用のアプリケーションを作成するよりも簡単なYahoo Pipesまたは回避策を受け入れています。 RSSフィードのみが必要です。これは今まで公に利用可能でしたが、今はいつでも中止できます(私は思う)。それでは、APIキーなしでアクセスできないようにしましょう。
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 」エラーを受け取っていないため、引き続き機能することを期待しています。
次のようなフィードを取得できます。
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ドキュメント からの詳細情報。
you Tubeで、左側のペインのサブスクリプションをクリックします。これにより、ページの中央にすべてのサブスクリプションが開きます。下にスクロールすると、すべてのサブスクリプションのxmlファイルを生成する[RSSリーダーにエクスポート]ボタンが表示されます。これを実行し、お気に入りのRSSリーダーにフィードリーで追加しました。
Youtubeチャンネルページを調べると、<head>
内に次のようなrssメタノードがあります。
<link rel="alternate"
type="application/rss+xml" title="RSS"
href="https://www.youtube.com/feeds/videos.xml?channel_id=UCn8zNIfYAQNdrFRrr8oibKw">
これにより、必要なデータが提供されます。
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);
私のブログ投稿から:http://tcodesblog.blogspot.com/search/label/howtofindyouryoutubechannelfeed
最初にあなたを見つけます チャンネルID:これを行うには、ダッシュボードのYouTubeチャンネルにアクセスします
をコピー チャンネルID: きみの チャンネルID ダッシュボード内からYouTubeチャンネルにアクセスすると見つけることができます
あなたのコピー チャンネルID:あなたのコピー チャンネルID そして交換 ここに 以下であなたと チャンネルID:https://www.youtube.com/feeds/videos.xml?channel_id=channelidgoeshere
YouTubeチャンネルフィード全体をコピーして、簡易フィードを作成します。これも、Googleの一部であるhttp://www.feedburner.com/
(Googleアカウントが必要です。無料で使用できます)でFeedBurnerに短いフィードリンクを作成することで行えます。新しいフィードを作成(選択 私はポッドキャスターです! 自分の動画がフィードに表示されることを確認し、Digg Reader、Apple iPhone Apple News App、Apple iPhoneなどの他のフィードリーダーとフィードを互換性があるようにします。 Podcastsアプリ、Feedlyなど)-または-YouTubeチャンネルフィード全体をコピーして既存のものを編集し、クリックします フィードの詳細を保存 普段通り
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
をチェックしてください。
また、Twitter、Google +、Flickr、Youtube、Identi.caなどの多くのサービスからRSSフィードを抽出できるRSS-Bridgeが存在します。
ソース: https://github.com/sebsauvage/rss-bridge
デモサーバー: https://bridge.suumitsu.eu/
ビデオリンクのYoutube URLをスクレイピングし、PHPフィードとして出力する小さなatomスクリプトを作成しました: https://Gist.github。 com/Skalman/801436d9693ff03bc4ce
https://www.youtube.com/user/scishow/videos などのURL。
警告:
次のURLを使用してみてください: https://www.youtube.com/feeds/videos.xml?user=USERNAME
私にとってはうまくいきます。
ここでYahoo Pipesの例を作成しました。
http://pipes.yahoo.com/pipes/pipe.info?_id=6eeff0110a81f2ab94e8472620770b11
APIキーを入力せずに「パイプを実行」を押すと、このパイプを実行できます。ただし、クローンを作成するときは、独自のAPIキーとチャンネルID(チャンネルAPIから取得可能)を提供する必要があります。 YouTubeユーザー名によるchannelIdの取得を自動化したいが、パイプするのは簡単ではなかった。
新しいサブスクリプションビデオのRSSフィードを作成するバッチスクリプトを作成しました。 APIキーは必要ありません。このスクリプトは、YouTube-DLとXidelの2つの外部ツールを使用します。
とにかく、次のスレッドを読み、投稿98に移動してスクリプトをダウンロードします。 http://code.google.com/p/gdata-issues/issues/detail?id=3946#c98
誰かがこれをphp、python、javascript、powershell、またはbashにコーディングすることを願っています。
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);
以下のコードを使用して、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
?>
ビデオ、チャンネル、ナビゲーションページにRSSアイコンを挿入する Youtube RSS-ify という名前のChrome拡張機能を見つけました。それはまさに私が探していたものでした。
アイコンは次のようになります。