【问题标题】:Embed Youtube videos :- with contains content from * , it is restricted from playback on certain site嵌入 Youtube 视频:- 包含来自 * 的内容,限制在某些网站上播放
【发布时间】:2012-09-07 23:05:27
【问题描述】:

如何嵌入包含受版权保护内容的 Youtube 视频。

例如,当您尝试在UIWebView 中播放此视频(http://www.youtube.com/embed/ADBKdSCbmiM)时,它会显示

 This Video Contains content from Vevo. It is restricted from playback on certain sites

我将如何让这样的视频在嵌入式播放器或自定义播放器中播放,我将使用MPMoviePlayer 等制作。我知道这是可能的,因为以下应用程序会这样做。 (http://itunes.apple.com/us/app/audioviz-view-your-songs-on/id547001249?mt=8)

编辑 很少有视频在浏览器中播放,但在 iOS 模拟器中显示

This video contains content from SME . It is restricted from playback on certain site

感谢大家的帮助!

【问题讨论】:

  • 该限制基于您在访问相关视频时使用的 IP 地址的反向查找。使用美国境内的代理,您会发现它突然播放没有任何问题。
  • 我不认为这是正确的,因为每当您嵌入完整视频时,它都可以正常工作,只是当您尝试嵌入它拒绝您许可的视频时
  • 哦,我想我没抓住重点。首先,这是真的(该视频受地理限制),但您的目标是另一个。对不起,我错过了。您的观点是关于在网页中嵌入 YouTube 视频以及与之相关的限制。
  • 正确,为什么它在嵌入时不显示视频而在不嵌入时显示?是否有任何代码技巧可以让嵌入的 URL 工作?
  • @Shredder2794 你找到解决问题的方法了吗?我也遇到过类似的问题,如果你找到了解决办法,请分享一下

标签: ios cocoa-touch ipad youtube embed


【解决方案1】:

使用 uiwebview 播放 youtube 视频:

  1. 首先检查您的 youtube URL 是否在浏览器中播放。如果视频没有在浏览器中播放,它也不会在设备中播放

  2. 您只签入设备;视频无法在模拟器中播放

    - (void) displayGoogleVideo
    
        {
    
        CGRect rect = [[UIScreen mainScreen] bounds];
    
        CGSize screenSize = rect.size;
    
        UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,screenSize.width,screenSize.height)];
    
        webView.autoresizesSubviews = YES;
    
        webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
    
        NSString *videoUrl = @"http://www.youtube.com/v/oHg5SJYRHA0"; // valid youtube url
    
    
        NSString *htmlString = [NSString stringWithFormat:@"<html><head><meta name = \"viewport\" content = \"initial-scale = 1.0, user-scalable = no, width = 212\"/></head><body style=\"background:#F00;margin-top:0px;margin-left:0px\"><div><object width=\"320\" height=\"480\"><param name=\"movie\" value=\"%@\"></param><param name=\"wmode\" value=\"transparent\"></param><embed src=\"%@\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"320\" height=\"480\"></embed></object></div></body></html>",videoUrl,videoUrl]    ;
    
    
    
        [webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:@"http://www.youtube.com"]];
    
    
        [window addSubview:webView];
    
        [webView release]; 
    
    }
    

【讨论】:

  • 我所有的 YouTube 网址都在浏览器中播放(也在移动浏览器中),但不是从应用程序中播放。我已经通过 developerfeed.com/ios/topic/… 链接 .. 我的问题是大多数 YouTube 视频都运行良好但有些人给出 此视频包含来自 SME 的内容。它被限制在某些网站上播放问题
  • 此方法在 ios-6 上不再适用,因为您必须使用 embed 方法播放视频...我也面临同样的问题,使用新方法播放 youtube 视频
  • 从 iOS 6 开始,您不能使用此方法在 UIWebView 中嵌入 YouTube 视频。你必须使用 iframe,检查这个答案:stackoverflow.com/a/12860616/662605
  • @Daniel 和 Bhupendra 是的.. 我们应该在 ios6 上使用 iFrames,就像这里 apiblog.youtube.com/2010/07/…
【解决方案2】:

您可以在初始化 youtube sdk 时使用player vars

NSDictionary *playerVars = @{
                             @"origin" : @"http://www.youtube.com",
                             };
[self.playerView loadWithVideoId:@"KOvoD1upTxM" playerVars:playerVars];

享受吧!

【讨论】:

  • 是的。请继续尝试。
【解决方案3】:

如果您要嵌入移动应用程序,则需要在视频的请求标头中设置您的Referer否则,如果您的引荐人字段留空,Youtube 会自动将您列入黑名单。

我详细回答了这个here。我自己也遇到过这个问题,并在我的案例中修复了它(使用 React Native 的 iOS 应用程序)。我现在可以播放 Vevo、WMG 和所有其他受限内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 2014-06-03
    • 2011-11-28
    • 2015-11-25
    • 2013-10-29
    • 2013-03-26
    • 2017-11-03
    相关资源
    最近更新 更多