Apple tvOSでYouTubeビデオを再生するにはどうすればよいですか?tvOSでYouTubeコンテンツを再生する方法
YouTubeの埋め込み機能は、OSには埋め込むことのできるUIWebViewがあるため、iOS 9で動作します。 新しいtvOSにはUIWebViewが含まれていないので、YouTubeの動画を埋め込む方法はわかりません。
Apple tvOSでYouTubeビデオを再生するにはどうすればよいですか?tvOSでYouTubeコンテンツを再生する方法
YouTubeの埋め込み機能は、OSには埋め込むことのできるUIWebViewがあるため、iOS 9で動作します。 新しいtvOSにはUIWebViewが含まれていないので、YouTubeの動画を埋め込む方法はわかりません。
UIWebView
およびMPMoviePlayerController
は、tvOSでは使用できません。次の選択肢は、AVPlayer
を使用してYouTube動画を再生することです。
AVPlayer
標準のYouTube URLからYouTube動画を再生することはできません。 https://www.youtube.com/watch?v=8To-6VIJZRE
。ビデオファイルへの直接URLが必要です。 HCYoutubeParserを使用すると、これを正確に達成できます。これはYouTube's TOSで許可されないであることを
NSString *youTubeString = @"https://www.youtube.com/watch?v=8To-6VIJZRE";
NSDictionary *videos = [HCYoutubeParser h264videosWithYoutubeURL:[NSURL URLWithString:youTubeString]];
NSString *urlString = [NSString stringWithFormat:@"%@", [videos objectForKey:@"medium"]];
AVAsset *asset = [AVAsset assetWithURL:[NSURL URLWithString:urlString]];
AVPlayerItem *avPlayerItem = [[AVPlayerItem alloc]initWithAsset:asset];
AVPlayer *videoPlayer = [AVPlayer playerWithPlayerItem:avPlayerItem];
AVPlayerLayer *avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:videoPlayer];
avPlayerLayer.frame = playerView.layer.bounds;
[playerView.layer addSublayer:avPlayerLayer];
[videoPlayer play];
注:私たちは私たちに必要なURLを持っていたら、私たちはAVPlayer
そうのようでそれを再生することができます。 自己責任で使用してください。 YouTubeがTOSに従っていないことに気づいた場合、またはYouTubeが生成した埋め込みコードをYouTubeが変更した場合、あなたのアプリはいつでも機能しなくなる可能性があります。
HCYoutubeParserは引き続きサポートされていますか? – Shazam
@Shazam GitHubで2年以上更新されていないので、いくつかの問題が存在する可能性があります。 –
tvOSで実行できるライブラリを知っていますか? GTLYouTubeなどと同じように? –
悲しいことに、Appleのスタッフの人でさえ、これに「否定的」と答えました。 〜からApple Developer Forums thread on the topic:
tvOSのWebViewはサポートされていないため、iframeの実装は機能しません。 TVMLはこの機能を提供していません。ダニエル・ストームの答えの
スウィフト2.0バージョン:ダニエル・ストームの答えへの追加として
let youTubeString : String = "https://www.youtube.com/watch?v=8To-6VIJZRE"
let videos : NSDictionary = HCYoutubeParser.h264videosWithYoutubeURL(NSURL(string: youTubeString))
let urlString : String = videos["medium"] as! String
let asset = AVAsset(URL: NSURL(string: urlString)!)
let avPlayerItem = AVPlayerItem(asset:asset)
let avPlayer = AVPlayer(playerItem: avPlayerItem)
let avPlayerLayer = AVPlayerLayer(player: avPlayer)
avPlayerLayer.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height);
self.view.layer.addSublayer(avPlayerLayer)
avPlayer.play()
、あなたはまた、コードを使用して新しいTVML言語でこれを達成することができます
<lockup videoURL="http://mp4-url.mp4">
<img src="video thumbnail.jpg" />
</lockup>
(これはあなたがYoutube TOSで許可されていない直接ビデオファイル(mp4)を必要とします)
私はこの1つhttps://cocoapods.org/pods/youtube-parser
Youtube.h264videosWithYoutubeURL(testURL) { (videoInfo, error) -> Void in
if let videoURLString = videoInfo?["url"] as? String,
videoTitle = videoInfo?["title"] as? String {
print("\(videoTitle)")
print("\(videoURLString)")
self.playVideo(videoURLString)
}
}
XCDYouTubeKitを使用し、直接しばらくの間、iOSのYouTubeのビデオを再生する一般的な方法となっている、と開発者が最近にそれを更新:.JSソリューションも見つかりました新しいAppleTVをサポートします。
ここObjective-C exampleからのコードです:
AVPlayerViewController *playerViewController = [AVPlayerViewController new];
[self presentViewController:playerViewController animated:YES completion:nil];
__weak AVPlayerViewController *weakPlayerViewController = playerViewController;
[[XCDYouTubeClient defaultClient] getVideoWithIdentifier:playlistItem.snippet.resourceId.videoId completionHandler:^(XCDYouTubeVideo * _Nullable video, NSError * _Nullable error) {
if (video)
{
NSDictionary *streamURLs = video.streamURLs;
NSURL *streamURL = streamURLs[XCDYouTubeVideoQualityHTTPLiveStreaming] ?: streamURLs[@(XCDYouTubeVideoQualityHD720)] ?: streamURLs[@(XCDYouTubeVideoQualityMedium360)] ?: streamURLs[@(XCDYouTubeVideoQualitySmall240)];
weakPlayerViewController.player = [AVPlayer playerWithURL:streamURL];
[weakPlayerViewController.player play];
}
else
{
[self dismissViewControllerAnimated:YES completion:nil];
}
}];
は、あなたが見たことがありますか? http://stackoverflow.com/questions/32493872/how-do-i-play-a-video-on-tvos-for-apple-tv/32551565#32551565「launchPlayer」のURLをYouTubeのURLに入れ替えてください。 –
私はGoogleから利用規約に違反することなくこれを行うためのライブラリが必要になると思っています。だから、これを構築するには数ヶ月かかるかもしれない(最初に明らかになるYouTubeのtvOSアプリと共に)。 – Nick
Plexは、新しい[AppleTV App](https://blog.plex.tv/2015/11/02/plex-on-the-new-apple-tv/)からYouTubeとVimeoのビデオを[後で見る/ Plex Itの機能](https://support.plex.tv/hc/en-us/articles/200392326-Using-the-Plex-It-Bookmarklet)。いくつかの[GitHub souce](https://github.com/plexinc-plugins/Services.bundle/blob/master/Contents/Service%20Sets/com.plexapp.plugins.youtube/URL/YouTube /ServiceCode.pys)は、ページスクレイピングを行っているようです。あれは正しいですか?彼らはどうやってこれを取り除くのか、誰にも気付かないのですか? – Nick