Сохранить видео Youtube для iPhone в приложении

Воспроизведение видео Youtube в приложении легко и хорошо документировано.

Есть две проблемы:

  1. после закрытия Youtube-плеера, если пользователь хочет снова воспроизвести его, он должен снова ждать streamовой передачи в Интернете
  2. не может играть в автономном режиме (загружать видео дома, чтобы смотреть на дороге)

Кто-нибудь имеет код для:

  1. скачать видео с YouTube в папку с документами и показать ход загрузки
  2. воспроизводить загруженное видео, загружая файл из папки документов (что означает, даже если он не подключен к Интернету)

Чтобы загрузить видео с YouTube:

  1. Получите URL-адрес для загрузки с помощью API YouTube или любого другого метода.
  2. Создайте NSOutputStream или NSFileHandle, открытый во временном файле (в NSTemporaryDirectory() или файл с именем temp в каталоге Documents).
  3. Настройте свой индикатор выполнения и все, что вам нужно сделать.
  4. Выделите и запустите NSURLConnection, чтобы извлечь файл из URL-адреса. Не используйте sendSynchronousRequest:returningResponse:error: конечно.
  5. В connection:didReceiveResponse: delegate, connection:didReceiveResponse: длину данных, которые нужно загрузить для правильного обновления индикатора выполнения.
  6. В connection:didReceiveData: метод делегирования, записывать данные в дескриптор выходного streamа / файла и обновлять индикатор выполнения по мере необходимости.
  7. В connectionDidFinishLoading: или connection:didFailWithError: закройте дескриптор выходного streamа / файла и переименуйте или удалите временный файл по мере необходимости.

Чтобы воспроизвести его, просто используйте файл NSURL fileURLWithPath: чтобы создать URL-адрес, указывающий на локальный файл в папке «Документы», и воспроизвести его так же, как и любое удаленное видео.

Ive использовал classы из этого проекта: https://github.com/larcus94/LBYouTubeView Он отлично работает для меня. Я могу загрузить видео с 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); } }]; 

Вы можете показать ход загрузки, используя технику, описанную в сообщениях выше.

Вот мой пример: https://github.com/comonitos/youtube_video

Я использовал class PSYouTubeExtractor.h от Peter Steinberger. Он может получить URL-адрес видео YouTube youtube mp4, а загрузка и просмотр не проблема.

NSURLConnection + NSNotificationCenter + PSYouTubeExtractor + NSMutableData

проверьте эти проекты –

https://github.com/iosdeveloper/MyTube
https://github.com/pvinis/mytube

они определенно помогут вам!

Я лично не знаю, как загружать видео с YouTube (и код слишком велик, чтобы вставить здесь ответ).

Однако здесь приведен полный пример загрузки YouTube. Это загрузчик youtube с открытым исходным кодом под названием LoadTube: вот ссылка на исходный код .

Я хотел бы воспроизвести видео и выяснить, где хранится файл temp. Если вы можете получить к нему доступ, скопируйте его в какую-нибудь папку для просмотра в автономном режиме.

  • Плохой URL-адрес при запросе с помощью NSURL
  • Сохранение изображения в plist
  • Как прокрутить UITableView в определенную позицию
  • Разбор даты JSON на IPhone
  • Что делает флаг компоновщика -all_load?
  • Как получить размер UIKeyboard с Apple iPhone SDK
  • Выбрать программную строку таблицы таблиц
  • Как читать трассировки стека объектов-c
  • Лучшая производительность с помощью libxml2 или NSXMLParser на iPhone?
  • Пользовательский интерфейс UINavigationBar
  • Вам нужно создать NSAutoreleasePool в блоке в GCD?
  • Давайте будем гением компьютера.