Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2013, 00:24   #1
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию Прямая ссылка на видео вконтакте

Здравствуйте. Может у кого-нибудь есть парсер прямых ссылок на видео с сайта ВКонтакте? Заметил, что написанный мной ранее парсер уже не работает. Буду очень благодарен.

PS Я не прошу писать за меня.

Если никто не выложит, возможно я сам завтра-послезавтра напишу.
kangreon вне форума Ответить с цитированием
Старый 28.02.2013, 00:52   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

мг ... ну так напиши сам и, может быть, захочешь поделиться с другими )))
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 28.02.2013, 01:32   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Ну если ранее написанный вами парсер не работает, то почему бы вам же и не починить?
Человек_Борща вне форума Ответить с цитированием
Старый 28.02.2013, 18:13   #4
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Парсер прямых ссылок на видео.

ParseVideoVK
VideoPage - Ссылка на страницу с видео. Она имеет следующий формат: https://vk.com/video_ext.php?oid=xxx&id=xxx&hash=xxx
MaxSize - Максимальный размер видео. vs240, vs360, vs480, vs720.

Для загрузки страницы, я использовал TMFWICustomHTTP, найденный на просторах сети. Его можно заменить на свой.
Код:
type
  TSize = (vs240, vs360, vs480, vs720);
  TVideoSize = set of TSize;

function GetParam(url, param: string): string;
var
  u, p: string;
  i: Integer;
begin
  Result := '';
  u := AnsiLowerCase(url);
  p := AnsiLowerCase(param);

  i := Pos('"' + p + '=', u);
  if i = 0 then
    i := Pos(';' + p + '=', u);
  if i = 0 then
    Exit;

  Result := Copy(url, i + Length(p) + 2, Length(url));
  if Pos('&', Result) <> 0 then
    Delete(Result, Pos('&', Result), Length(Result));
end;

function TVkVideo.ParseVideoVK(VideoPage: string; MaxSize: TSize): string;
var
  s, hd, host, uid, vtag, size: string;
  i, j, iHd: Integer;
  VideoSize: TVideoSize;
begin
  Result := '';

  // Загрузка страницы с видео. Формат ссылки на эту страницу:
  // https://vk.com/video_ext.php?oid=xxx&id=xxx&hash=xxx
  with TMFWICustomHTTP.Create(nil) do
  try
    try
      s := AnsiLowerCase(Trim(Get(VideoPage)));
    except
    end;
  finally
    Free;
  end;

  // Копирование строки с необходимыми данными для составления
  // прямой ссылки на видео
  i := Pos('"flashvars"', s);
  if i = 0 then Exit;
  j := Pos('</param', s, i);
  if j = 0 then Exit;
  s := Copy(s, i, j - i);

  // Вытаскивание необходимых данных
  uid := GetParam(s, 'uid');
  host := GetParam(s, 'host');
  vtag := GetParam(s, 'vtag');
  hd := GetParam(s, 'hd');

  if not TryStrToInt(hd, iHd) then Exit;

  // Составление списка размеров видео
  VideoSize := [];
  if iHd >= 3 then
    Include(VideoSize, vs720);
  if iHd >= 2 then
    Include(VideoSize, vs480);
  if iHd >= 1 then
    Include(VideoSize, vs360);
  if iHd >= 0 then
    Include(VideoSize, vs240);

  size := '240';
  if (vs360 in VideoSize) and (MaxSize > vs240) then
    size := '360';
  if (vs480 in VideoSize) and (MaxSize > vs360) then
    size := '480';
  if (vs720 in VideoSize) and (MaxSize > vs480 ) then
    size := '720';

  // Составление ссылки
  Result := Format('%su%s/videos/%s.%s.mp4', [host, uid, vtag, size]);
end;
kangreon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсер видео вконтакте DjDram Мультимедиа в Delphi 7 24.09.2011 22:35
Ссылка на видео с Youtube stepennwolf PHP 0 23.04.2011 00:10
Видео Вконтакте dmitriegorovih Работа с сетью в Delphi 0 03.04.2011 21:21
видео в вконтакте DeDoK Работа с сетью в Delphi 0 13.07.2010 01:54
Видео и аудио с ВКонтакте marcevgen Свободное общение 2 11.02.2010 22:59