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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2011, 16:39   #1
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию Получение ссылки скачивания видео с контакта

Приветствую всех, хотелось бы осуществить следующее, используя компонент idHTTP и ссылку видео из контакта например Получить ссылку на скачивание этого видео
(на форме 2 edit, 1 button)

нашел примерный код но он не работает (старый видимо)

Код:
 function Parse(str, str2, ob: string): string; 
var 
  s1, s2: string; 
begin 
  s1 := Copy(ob, pos(str, ob) + length(str), length(ob)); 
  s2 := Copy(s1, 1, pos(str2, s1) - 1); 
  result := s2; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
var  v,video,l, li, lin, vkid, vtag ,ndd :string; 
begin 

// пример   http://vkontakte.ru/video23017580_147973140?noiphone 
// для начала при помошщи сниффера узнаём как выглядит ссыль при просмотре видео 
//  мы узнали  http://217.gt2.vkadre.ru/assets/videos/cafde3edd00a-43319217.vk.flv 

       //  получаем содержимое html страницы 

      v:= HTTP.Get('http://vkontakte.ru/video23017580_147973140?noiphone'); 

      //   нас интересует кусок от "loadFlashPlayer" и до "hash2" 
       v:=Parse(' loadFlashPlayer', ',"hash2":"', v); 

      //   вырезаем в переменную v 
       Memo1.Lines.Text:= v; 
     //  и дальше режем на различные переменные из 
     //  которых состоит ссылка на скачивание 

        li:=Parse('http:\/\/', '\/', v);     //  217.gt2.vkadre.ru 
        Memo2.Lines.Add('li='+li); 

        lin:=parse(li+'\/','\/',v);          //  assets 
        Memo2.Lines.Add('lin='+lin); 

        vtag:= Parse('"vtag":"', '"', v);     //  cafde3edd00a- 
        Memo2.Lines.Add('vtag='+vtag); 


        vkid:= Parse('vkid":"','","' ,v);      //  43319217 
        Memo2.Lines.Add('vkid='+vkid); 

        //  и из того что получили - собираем в ссылку 
        video:= 'http://'+li+'/'+lin+'/videos/'+vtag+vkid+'.vk.flv' ; 

         Memo2.Lines.Add('http://+li+/lin/videos/+vtag+vkid+.vk.flv') ; 
         Memo2.Lines.Add(video); 
       // Вот собствено и всё  ничего сложного 


end;
cargo29 вне форума Ответить с цитированием
Старый 28.05.2011, 18:29   #2
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

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

Код:
http://cs12429.vkontakte.ru/u21278096/video/b77c8c0fa5.flv
И в исходном коде страницы увидел такой текст:

Код:
\"host\":\"http:\\\/\\\/cs12429.vkontakte.ru\\\/\",\"vtag\":\"b77c8c0fa5\",\"ltag\":\"l_db23f101\",\"vkid\":\"142826320\"

и

\"thumb\":\"http:\\\/\\\/cs12429.vkontakte.ru\\\/u21278096\\\/video\\\/l_db23f101.jpg\"

Думаю, не трудно сопоставить всё и написать свой код)
Voody вне форума Ответить с цитированием
Старый 28.05.2011, 19:27   #3
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Voody Посмотреть сообщение
Устанавливайте плагин для вашего браузера, который позволяет скачивать с ВК, и смотрите прямую ссылку.
В данном случае я с помощью плагина увидел такую:

Код:
http://cs12429.vkontakte.ru/u21278096/video/b77c8c0fa5.flv
И в исходном коде страницы увидел такой текст:

Код:
\"host\":\"http:\\\/\\\/cs12429.vkontakte.ru\\\/\",\"vtag\":\"b77c8c0fa5\",\"ltag\":\"l_db23f101\",\"vkid\":\"142826320\"

и

\"thumb\":\"http:\\\/\\\/cs12429.vkontakte.ru\\\/u21278096\\\/video\\\/l_db23f101.jpg\"

Думаю, не трудно сопоставить всё и написать свой код)
а какой браузер???? а то я не мог найти вот это в коде страницы vkid
cargo29 вне форума Ответить с цитированием
Старый 28.05.2011, 19:34   #4
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

даже близко нигде нету этого кода страницы
Цитата:
"host\":\"http:\\\/\\\/cs12429.vkontakte.ru\\\/\",\"vtag\":\"b77c8c0fa5\",\"ltag\" :\"l_db23f101\",\"vkid\":\"14282632 0\"

и

\"thumb\":\"http:\\\/\\\/cs12429.vkontakte.ru\\\/u21278096\\\/video\\\/l_db23f101.jpg\"
cargo29 вне форума Ответить с цитированием
Старый 28.05.2011, 19:39   #5
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

у меня опера не находит а хром нашел vkid почему так??
cargo29 вне форума Ответить с цитированием
Старый 28.05.2011, 21:06   #6
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Опера. Просто перешел по вашей ссылке, в контекстном меню выбрал "Исходный код" и сделал поиск по слову "b77c8c0fa5"
Voody вне форума Ответить с цитированием
Старый 28.05.2011, 22:50   #7
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Voody Посмотреть сообщение
Опера. Просто перешел по вашей ссылке, в контекстном меню выбрал "Исходный код" и сделал поиск по слову "b77c8c0fa5"
Ладно это не суть важно я и с хромом поработаю, но вот проблема,

Код:
function Parse(str, str2, ob: string): string; 
var 
  s1, s2: string; 
begin 
  s1 := Copy(ob, pos(str, ob) + length(str), length(ob)); 
  s2 := Copy(s1, 1, pos(str2, s1) - 1); 
  result := s2;
end;




procedure TForm1.Button1Click(Sender: TObject);
var  v,video, li, lin, vkid, vtag :string;
begin
v:= HTTP.Get(edit1.Text);

 v:=Parse('box.setOptions','"hash2', v);

Memo1.Lines.Text:= v;

li:=Parse('"host\":\"', '\",\', v);     //  217.gt2.vkadre.ru
        Memo2.Lines.Add('li='+li);

        lin:=parse(li+'\\\/','\\\/',v);          //  assets
        Memo2.Lines.Add('lin='+lin); 

        vtag:= Parse('"vtag\":\"', '\",\"ltag\', v);     //  cafde3edd00a-
        Memo2.Lines.Add('vtag='+vtag);


        vkid:= Parse('\"vkid\":\"','\",\"md' ,v);      //  43319217
        Memo2.Lines.Add('vkid='+vkid);


      video:= 'http://'+li+'/'+lin+'/videos/'+vtag+vkid+'.vk.flv' ; 

         Memo2.Lines.Add('http://+li+/lin/videos/+vtag+vkid+.vk.flv') ; 
         Memo2.Lines.Add(video); 
       // Вот собствено и всё  ничего сложного


end;

вот код который выводит ссылку но он работает не на все видео, они видимо разные есть как тогда можно поступить????
cargo29 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение данных из контакта .Phoenix Общие вопросы Delphi 1 04.03.2011 20:59
Прямые ссылки на видео osbi PHP 2 11.07.2010 08:38
прога для скачивания картинок с контакта alexkross Софт 0 11.04.2010 16:15
Получение сгенерированной ссылки stah JavaScript, Ajax 3 18.02.2010 17:31