1 日の大半をドキュメントを読んだり、自分のサイトに YouTube を埋め込む方法に関するさまざまなビデオを見たりして、ある程度の進歩を遂げました。しかし、今は少し立ち往生しています。
私は、とりわけ、私のユーザーのプロフィールを見て、お気に入りのチームを取得し、そのチームが公式の YouTube チャンネルにアップロードしたビデオを表示するサイトに取り組んでいます。
私は Data API v3 を使用し、HTTParty を使用しています。各ビデオ リソースを取得するために必要なビデオ ID を取得できます。それはうまくいきます。これがそのコードです。(y_user はチャンネル名、y_key は API キーです)
__
チャンネル情報を取得しています....
response = HTTParty.get("https://www.googleapis.com/youtube/v3/channels?part=id%2C+snippet&forUsername=#{y_user}&key=#{y_key}")
channel_id = response["items"][0]["id"]
今回はチャネル ID を使用し、チャネルから 6 つのビデオ レコードを要求します。
channel_info = HTTParty.get("https://www.googleapis.com/youtube/v3/search?part=id%2C+snippet&channelId=#{channel_id}&maxResults=6&order=date&key=#{y_key}")
各ビデオ レコードからビデオ ID を取得するようになりました。
@video_ids = []
channel_info["items"].each do |item|
@video_ids.push(item["id"]["videoId"])
end
各動画 ID の動画リソースを取得し、プレーヤーの埋め込みコードを取得します。
@videos = []
@video_ids.each do |video_id|
source = HTTParty.get("https://www.googleapis.com/youtube/v3/videos?part=id,snippet,player&id=#{video_id}&key=#{y_key}")
single_video = source["items"][0]["player"]["embedHtml"]
@videos.push(single_video)
end
そして私のHTML....
<% @videos.each do |v| %>
<div class="video-slide"><%= v %></div>
<% end %>
これが私に返すのは、私が要求した 6 つのビデオに対応する 6 つの iframe です。動画 ID がそれぞれ一意であることがわかります。
<iframe type='text/html' src='http://www.youtube.com/embed/fNyKJjARuj4' width='640' height='360' frameborder='0' allowfullscreen='true'/>
<iframe type='text/html' src='http://www.youtube.com/embed/6HxJG60kZCI' width='640' height='360' frameborder='0' allowfullscreen='true'/>
等....
私が今はっきりしていないのは、各プレーヤーをレンダリングする方法です(それぞれがスライドに表示されます)。コードをそのままにしておくと、iframe HTML は示されているように表示されますが、プレーヤーは表示されません。
しかし、.html_safe を追加すると....
<div class="video-slide"><%= v.html_safe %></div>
プレーヤーをレンダリングしますが、iframe の 1 つに対してのみです。コードを調べても、他のものは完全に消えます。
この時点で何をすべきかわからない。html_safe を使用するべきではなく、代わりに iframe api 情報ページ (下記) の情報を使用して各 iframe のプレーヤーを手動で作成する必要があると思いますが、この時点で少し圧倒されます。どんな助けでも大歓迎です。
https://developers.google.com/youtube/iframe_api_reference#Examples