2013-01-07 158 views
1

我分析的「url_encoded_fmt_stream_map =」與某些格式的直接視頻的URL條目,例如(解碼):下載YouTube視頻不工作

http://r7---sn-2apm-f5f6.c.youtube.com/videoplayback?gcr=de&cp=U0hUTFVUUl9LUENONF9NTlZHOkpGR0NWdWtvSk15&source=youtube&ip=46.59.194.67&upn=KHmKgXE5di4&fexp=917000,906357,911115,916611,920704,912806,928001,922403,922405,929901,913605,929104,913546,913556,908496,920201,913302,919009,911116,901451,902556&ms=au&itag=45&mt=1357571596&sparams=cp,gcr,id,ip,ipbits,itag,ratebypass,source,upn,expire&id=e4b675c403014739&expire=1357594666&ipbits=8&mv=m&newshard=yes&ratebypass=yes&sver=3&key=yt1&signature=1C8204D1180CAB0B57E3B3331409BD055CBA25B1.73FBEC95E020BBCAC6485D62601E8CF05ACA72DE,quality=hd720&itag=22&fallback_host=tc.v23.cache2.c.youtube.com&type=video/mp4;+codecs="avc1.64001F,+mp4a.40.2" 

但我不能下載或查看吧! VLC說:無法打開! Firefox仍然是空的(白色的窗口,沒有錯誤信息)! 「url_encoded_fmt_stream_map =」後的url是否正確?

+0

我也對此感興趣。我嘗試了這種方法,得到了同樣的結果。有人可以提供下載Youtube視頻的當前工作解決方案嗎? – Petr

+0

您也可以先將YouTube上的視頻下載到本地存儲中。檢查一下,這是非常有用的:http://www.youtube.com/watch?v=g-Wbjmm980A – 2013-03-16 11:28:24

回答

0

在我的回答https://stackoverflow.com/a/14352995/307547我描述了一個下載youtube視頻的解決方案。

LBYouTubeExtractor *extractor = [[[LBYouTubeExtractor alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:(@"http://www.youtube.com/watch?v=%@"), self.videoID ]] quality:LBYouTubeVideoQualityLarge] autorelease]; 
[extractor extractVideoURLWithCompletionBlock:^(NSURL *videoURL, NSError *error) { 
    if(!error) { 
     NSLog(@"Did extract video URL using completion block: %@", videoURL); 

     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
      NSData *data = [NSData dataWithContentsOfURL: videoURL]; 
      NSString *pathToDocs = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
      NSString *filename = [NSString stringWithFormat:(@"video_%@.mp4"), self.videoID ]; 
      [data writeToFile:[pathTODocs stringByAppendingPathComponent:filename] atomically:YES]; 
      NSLog(@"File %@ successfully saved", filename); 
     }); 
    } else { 
     NSLog(@"Failed extracting video URL using block due to error:%@", error); 
    } 
}]; 

您可以顯示使用以上職位描述的技術下載的進度。 您可以用更適合您的方法替換dataWithContentsOfURL。

+0

那麼我們是否允許直接下載視頻或者是否違反了tos?由於某種原因,質量也很低:( –