Get YouTube url from UIWebView



如何从YouTube视频中获取URL?

将YouTube视频加载到WebView中后,我创建了一个按钮,用户可以点击将URL复制到同一页面上的文本字段。诀窍是获取页面的InnerHTML,然后查找YouTube ID。然后,使用此ID,我将其放入完整的URL中,以便用户可以保存链接并在以后播放视频,而无需在YouTube站点上再次查找该视频。(顺便说一句,我有自己的DisplayAlert获取给定消息,并在UIWebView中没有加载视频或加载许多视频时将其显示给用户),这是代码:

-(IBAction)copyURLAction {
    if (webView) {
        NSString* htmlString = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"];
        if (htmlString) {
            NSString *youTubeID = @"data-youtube-id="";
            int position = [htmlString rangeOfString:youTubeID].location + [youTubeID length];
            if (position > 1) {
                htmlString = [htmlString substringFromIndex:position];
                position = [htmlString rangeOfString:@"""].location;
                htmlString = [htmlString substringToIndex:position];
                NSString* tempPrefix = @"http://m.youtube.com/watch?v=";
                NSString *youTubeString = [tempPrefix stringByAppendingString:htmlString];
                textFieldView.text = youTubeString;
            } else {
                [[SharedObjectsSingleton sharedInstance] displayAlert:@"Can't Copy URL" :@"Can only copy the URL when a single video is being displayed."];
            }
        } else {
            [[SharedObjectsSingleton sharedInstance] displayAlert:@"Can't get URL" :@"Nothing to copy."];
        }
    }
}

上面用于工作的代码,但我认为YouTube已更改脚本,因此为了使其工作,您需要替换 @"data-youtube-id=""带有@"i.ytimg.com/vi/"

最新更新