如何从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/"