Как обеспечить, чтобы API YouTube возвращал только те видео, которые можно записать на iPhone? - PullRequest
3 голосов
/ 08 апреля 2010

Я встраиваю некоторые функции поиска YouTube в приложение для iPhone и хочу, чтобы я получал только те результаты, которые будут воспроизводиться на устройстве. Согласно разделу Поиск видео в справочном документе API это выглядит довольно просто:

Параметр format указывает, что видео должны быть доступны в определенном видеоформате. В вашем запросе можно указать любой из следующих форматов:

Я пытался установить "format = 1" для ограничения:

Потоковый URL RTSP для воспроизведения мобильного видео. Видео H.263 (до 176x144) и аудио AMR.

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

Когда я оставляю поле формата пустым, я получаю еще большую долю неконтролируемых URL.

Ответы [ 2 ]

2 голосов
/ 11 апреля 2010

Это не звучит уместно. Насколько я понимаю, iPhone не передает RTSP, а поддерживает потоковую передачу HTTP сегментированных файлов Apple для прямой трансляции и потоковую передачу видеофайлов MPEG4 через HTTP-запросы. Я также ожидал, что видео будет H.264 и AAC audio.

Ваша настройка звучит для мобильных телефонов низкого уровня. В частности, 176x144 - это разрешение QCIF, обычно используемое на не-смартфонах.

1 голос
/ 31 августа 2010

Когда вы смотрите на файл XML, возвращаемый при вызове

http://gdata.youtube.com/feeds/api/videos/<your video id>

тогда вы заметите, что видео, которые не воспроизводятся на iPhone, будет иметь следующий тег:

<yt:state name='restricted' reasonCode='limitedSyndication'>Syndication of this video was restricted by its owner.</yt:state>

Просто найдите вышеуказанный тег и проигнорируйте видео, если тег присутствует.

...