Получить видеофайл из flash player target-c

Кто-нибудь знает, как получить URL-адрес видеофайла с этого URL-адреса:

http://vk.com/video_ext.php?oid=6492&id=141771975&hash=a984f2edb68fc4f7

Он возвращает флеш-плеер с видео, но iphone не поддерживает формат flv, и я хочу знать, является ли видео файлом flv или mp4. Если кто-то знает, как воспроизводить FLV-видео онлайн, я слушаю :)


person Timur Mustafaev    schedule 26.08.2011    source источник


Ответы (1)


Используйте сниффер/прокси-сервер HTTP-трафика, чтобы увидеть, какие файлы загружаются страницей. Во многих браузерах он встроен в инструменты разработчика (например, вкладка net в Firebug), но я предпочитаю использовать Charles, который имеет много других полезных функций для веб-разработчиков.

Используя Charles, я вижу, что файл, который загружается, когда я нажимаю кнопку воспроизведения, имеет вид http://cs12326.vk.com/u06492/video/ab94044f46.flv, который представляет собой FLV-файл.

EDIT: Если вы хотите сделать это программно, вам может не повезти, потому что только видеопроигрыватель (реализованный во Flash) знает, с какого URL-адреса получить видеофайл. Вы можете перепроектировать его для этого конкретного веб-сайта (см. ниже), но, очевидно, он будет работать только для видео на vk.com и, возможно, даже не для всех видео на vk.com.

Глядя на HTML, я вижу, что определены четыре, казалось бы, важные переменные javascript:

var video_host = 'http://cs12326.vk.com/';
var video_uid = '06492';
var video_vtag = 'ab94044f46';
var video_no_flv = 0;

Эти значения можно найти в URL-адресе видео, поэтому можно с уверенностью предположить, что, проанализировав текст HTML для этих определений переменных и используя значения для компиляции URL-адреса, вы сможете найти файл.

Я предполагаю, что переменная video_no_flv, определенная в том же фрагменте кода, указывает, является ли видео FLV-файлом или нет. На этой странице установлено значение 0, поэтому я предполагаю, что это означает, что это FLV-файл. Это будет означать, что поиск в текстовой строке HTML подстроки video_no_flv и анализ целого числа после следующего последующего = скажет вам, является ли видеофайл FLV-файлом или нет.

Если это не так, можно с уверенностью предположить, что это MP4/F4V (оба являются разными суффиксами для одного и того же типа файла MPEG-4 H.264) и что вы сможете воспроизвести его на своем iPhone. В этом случае вы сможете составить URL-адрес из частей, упомянутых выше, и загрузить его.

//Pseudo-code
url = video_host + video_uid + "/video/" + video_vtag + ".m4v"

Чтобы оценить, действительно ли это сработает, вам нужно изучить большую коллекцию видео на этом сайте.

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

person richardolsson    schedule 26.08.2011
comment
Ой, простите. Я должен был понять, что вы этого хотели, потому что в конце концов это сайт программирования (хотя вы прямо не заявили, что хотите написать программу для выполнения этой проверки). Редактирую свой ответ. - person richardolsson; 26.08.2011
comment
Название вопроса: Получить видеофайл из flash player objective-c :) - person Timur Mustafaev; 26.08.2011
comment
Отредактировал мой ответ, добавив идею о том, как решить это программно. - person richardolsson; 26.08.2011
comment
Спасибо, Ричард. Я попробую это :) - person Timur Mustafaev; 26.08.2011