में प्रोग्रामिक रूप से यूट्यूब वीडियो लिंक का पता लगाने के लिए मुझे यूट्यूब जैसी वीडियो साइटों से वीडियो डाउनलोड और सहेजने की आवश्यकता है। मैं उन्हें आईफोन की वीडियो लाइब्रेरी में सहेजना चाहता हूं। मैं वीडियो का पता कैसे लगा सकता हूं और उन्हें पुस्तकालय में कैसे सहेज सकता हूं? मैंने पहले ही कुछ स्रोत कोड उपलब्ध कराए हैं। यह मैंने डाउनलोड एक्शन में किया है, लेकिन काम नहीं कर रहा है।उद्देश्य सी
- (IBAction)download {
[downloadButton setEnabled:NO];
[webView setUserInteractionEnabled:NO];
UIUserInterfaceIdiom userInterfaceIdiom = [UIDevice currentDevice].userInterfaceIdiom;
NSString *getURL = @"";
if (userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
getURL = [webView stringByEvaluatingJavaScriptFromString:@"function getURL() {var player = document.getElementById('player'); var video = player.getElementsByTagName('video')[0]; return video.getAttribute('src');} getURL();"];
} else {
getURL = [webView stringByEvaluatingJavaScriptFromString:@"function getURL() {var bh = document.getElementsByClassName('bh'); if (bh.length) {return bh[0].getAttribute('src');} else {var zq = document.getElementsByClassName('zq')[0]; return zq.getAttribute('src');}} getURL();"];
}
NSString *getTitle = [webView stringByEvaluatingJavaScriptFromString:@"function getTitle() {var jm = document.getElementsByClassName('jm'); if (jm.length) {return jm[0].innerHTML;} else {var lp = document.getElementsByClassName('lp')[0]; return lp.childNodes[0].innerHTML;}} getTitle();"];
NSString *getTitleFromChannel = [webView stringByEvaluatingJavaScriptFromString:@"function getTitleFromChannel() {var video_title = document.getElementById('video_title'); return video_title.childNodes[0].innerHTML;} getTitleFromChannel();"];
NSLog(@"%@, %@, %@", getURL, getTitle, getTitleFromChannel);
[webView setUserInteractionEnabled:YES];
NSArray *components = [getTitle componentsSeparatedByCharactersInSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet]];
getTitle = [components componentsJoinedByString:@" "];
if ([getURL length] > 0) {
if ([getTitle length] > 0) {
videoTitle = [getTitle retain];
bar = [[UIDownloadBar alloc] initWithURL:[NSURL URLWithString:getURL]
progressBarFrame:CGRectMake(85.0, 17.0, 150.0, 11.0)
timeout:15
delegate:self];
[bar setProgressViewStyle:UIProgressViewStyleBar];
[toolbar addSubview:bar];
} else {
NSArray *components = [getTitleFromChannel componentsSeparatedByCharactersInSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet]];
getTitleFromChannel = [components componentsJoinedByString:@" "];
if ([getTitleFromChannel length] > 0) {
videoTitle = [getTitleFromChannel retain];
bar = [[UIDownloadBar alloc] initWithURL:[NSURL URLWithString:getURL]
progressBarFrame:CGRectMake(85.0, 17.0, 150.0, 11.0)
timeout:15
delegate:self];
[bar setProgressViewStyle:UIProgressViewStyleBar];
[toolbar addSubview:bar];
} else {
//NSLog(@"%@", [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML;"]);
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"MyTube" message:@"Couldn't get video title." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
[alertView release];
[downloadButton setEnabled:YES];
}
}
} else {
//NSLog(@"%@", [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML;"]);
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"MyTube" message:@"Couldn't get MP4 URL." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
[alertView release];
[downloadButton setEnabled:YES];
}
}
मैं भी एक ही बात की जरूरत है क्योंकि यूट्यूब बजाय http या https – dark
reqeust की जावास्क्रिप्ट शामिल जब आप कहते हैं कि "यह काम नहीं कर रहा", आप अधिक विशिष्ट हो सकता है? – Abizern
@alpz कोई अपडेट? –