Техническое, чтобы самому не забыть. Ну или кто рискнёт это править. ;-) Раньше (с какой-то достаточно древней версии и, наверное, до 1.25) видео ВКонтакте обрабатывалось на общих основаниях: один из вспомогательных сайтов (я даже не знаю, какой именно) преобразовывал ссылку на страницу со встроенным роликом в прямую ссылку для скачивания. Начиная, наверное, с 1.26 это работать перестало -- прямой ссылки ни один вспомогательный сайт не выдаёт! Подозреваю, что ВКонтакт каким-то образом изменил схему защиты своего контента. Но! Сайт flashvideodownloader.org сделал хитро: вместо секретной ссылки в недра ВКонтакта он выдаёт flv-файл сам. Опять же подозреваю, что он просто скачивает видео-поток, предназначенный для флеш-плеера, и отдаёт его по http. Эт' хорошо, эт' здорово, они м-молодцы! Вопрос: каким боком это касается моей программки? Ответ: молодцы-то они молодцы, но вместо того, чтобы сделать это в своём стандартном интерфейсе (выдать страничку со ссылкой "качай отсюда"), они начинают прямо, без промежуточного шага, отдавать видео-файл. Нормальный браузер видит Content-Type: video/flv, и предлагает его сохранить. Ну а если пришло text/html, то показывает на экране страницу, как и раньше. Поэтому мне пришлось пойти в обход: сначала запрашивать HEAD вместо GET, и, если в заголовках оказалось video/flv, то прямо вызывать wget с тем же запросом в качестве адреса. Ну а если что-то другое (text/html), то пере-запрашивать всю страницу и, как и раньше, извлекать из неё ссылку. Чтобы впихнуть это всё в довольно тупую логику моей программки, пришлось считать искусственную конструкцию "заголовки http плюс исходный url" за такую "как бы страницу", и извлекать этот url из неё обратно. Да, криво, но работает. Проблема: бывает (кажется, на ссылках на удалённый ролик), что передняя половина сайта считает, что она может преобразовать ссылку в видео-файл, а задняя обнаруживает, что нет, не может. Тогда сообщение об ошибке (в виде html) выдаётся с типом содержимого video/flv в заголовке. Браузеры обычно верят заголовку и не показывают это как страницу, а предлагают сохранить. Моя программка, увы, поступает также: сохраняет html-ку как flv-файл. Как ловить эту ошибку -- ума не приложу. К счастью, оно редко случается. Написано 18-09-2009, соответствует версиям 1.32 и 1.33 моей программки.