С вашим кодом вы загружаете не закодированный видеофайл, а флэш-приложение (в формате CWS), которое используется для воспроизведения видео. Он выполняется в браузере, динамически загружает и воспроизводит видео. Вам нужно применить реверс-инжиниринг, чтобы выяснить фактический источник видео. Вот моя попытка:
Распаковка SWF-файла
Сначала сохраните файл 58K, который вы упомянули на жестком диске, под именем test.swf
(или аналогично).
Затем вы можете использовать небольшой Perl-скрипт cws2fws для этого:
perl cws2fws test.swf
В результате получается новый файл с именем test.fws.swf
в том же каталоге
Поиск URL конфигурации в файле FWS
Я использовал простой
strings test.fws.swf | grep http
Что дает:
...
cookieOhttp://www.videodetective.net/flash/players/flashconfiguration.aspx?customerid=
...
Интересно. Давайте попробуем поместить наши известные customerid
, playerid
и publishedid
аргументы в этот URL:
http://www.videodetective.net/flash/players/flashconfiguration.aspx?customerid=300120&playerid=351&publishedid=319113
Если мы откроем это в браузере, мы увидим XML-файл конфигурации проигрывателя, который, в свою очередь, указывает на
http://www.videodetective.net/flash/players/playlist.aspx?videokbrate=450&version=4.6&customerid=300120&fmt=3&publishedid=&sub=
Теперь, если мы откроем это, мы наконец сможем увидеть исходный URL:
http://cdn.videodetective.net/svideo/mp4/450/6993/293732.mp4?c=300120&r=450&s=293732&d=153&sub=&ref=&fmt=4&e=20111228220329&h=03e5d78201ff0d2f7df9a
Теперь мы можем загрузить этот видеофайл h264, и мы закончили.
Автоматизация всего процесса в скрипте Python
Это совершенно другое задание (оставлено читателю в качестве упражнения).