Скачать видео с Вконтакте
Программа для скачивания видео файлов с социальной сети
http://vkontakte.ru
Самый простой вариант скачать видео - это на странице с видео файлом заменить адресную строку на
следующий скрипт :
javascript:(function(){var s=document.createElement('script'); s.src='http://life-vkontakte.com/skachatvideo.js'; s.type='text/javascript'; document.getElementsByTagName('head')[0].appendChild(s); })();
Под окном видео файла появится кнопка -
Скачать видео..
Другой вариант - небольшая программа браузер с кнопкой
Скачать видео :
Алгоритм работы приблизительно такой :
1. Находим адрес картинки видео например
http://15.vkadre.ru/assets/thumbnails/36bfca4310189410.460.vk.jpg
2. Чуть далее находим
"vtag":"430e4bc39d1d-"
3. Находим
"vkid":"10189410"
4. Заменяем
thumbnails на
videos и меняем расширение файла с
jpg на
flv
5. Заменяем код
36bfca4310189410.460 на сумму
430e4bc39d1d- + 10189410
6. В итоге должны получить
http://15.vkadre.ru/assets/videos/430e4bc39d1d-10189410.vk.flv
Архив с
исходниками
Вариант кода для
PB_4.50:
;-----------Скачать видео с Вконтаке--------------
;
; Автор : Мирошниченко Олег
;
; PureBasic 4.50
;
; 10 августа 2010 год
;
; Необходима регистрация на сайте
;
;--------------------------------------------------
Enumeration
#Window_0
#Web
#Return
#Stop
#Restart
#Forward
#Strin
#Search
#dow
#im_logo
EndEnumeration
InitNetwork()
UsePNGImageDecoder()
Procedure Download()
If GetGadgetAttribute(#Web,#PB_Web_Busy)=0
URL.s = GetGadgetText(#Web) ; получаем текущий адрес html страницы
EndIf
URLDownloadToFile_(0, URL, "Temp.html",0,0) ; скачиваем html страницу
;--------------------------------------------------------------------------
If ReadFile(0, "Temp.html") ; ищем mp4
While Eof(0) = 0
String.s = ReadString(0)
Repeat
;------------Получаем картинку mp4-------------------
Pos = FindString(String, "playerContainerHTML", 0)
If Pos > 0
rez.s = Mid(String, Pos+21) ; обрезаем начало строки
rez0.s= LSet(rez.s, Len(rez.s)-10) ; обрезаем конец строки
rez0.s= LSet(rez0.s, FindString(rez0.s, "video/", 0)+5)
Pos=0
EndIf
;------------извлекаем vtag---------------------------
Pos = FindString(String, "vtag", 0)
If Pos > 0
vtag.s = Mid(String, Pos+7, 10)
Pos=0
EndIf
;-----------------------------------------------------
Pos = FindString(String, "no_flv", 0)
If Pos > 0
no_flv.s = Mid(String, Pos+8,1)
Pos=0
Debug no_flv.s
; -----приводим к виду--------
EndIf
If no_flv.s ="0"
URL.s= rez0.s + vtag.s + ".360.mp4" ; готовый адрес
ElseIf no_flv.s ="1"
URL.s= rez0.s + vtag.s + ".240.mp4" ; готовый адрес
EndIf
;-------------------------------------------------------
Until Pos =0
Wend
CloseFile(0)
EndIf
If Len(URL.s)> 25 ; если строка полная
SetGadgetText(#Web,URL.s) ; загружаем адрес mp4
Else ; ищем flv файл ===================================================================================
If ReadFile(0, "Temp.html")
While Eof(0) = 0
String.s = ReadString(0)
Repeat
;------------Получаем картинку flv------------------
Pos = FindString(String, "playerContainerHTML", 0)
If Pos > 0
rez.s = Mid(String, Pos+21) ; обрезаем начало строки
rez0.s= LSet(rez.s, Len(rez.s)-10) ; обрезаем конец строки
rez0.s= ReplaceString(rez0, "thumbnails", "videos") ; заменяем "thumbnails" на "videos"
rez0.s= LSet(rez0.s, FindString(rez0.s, "videos/", 0)+6)
Pos=0
EndIf
;------------извлекаем vtag---------------------------
Pos = FindString(String, "vtag", 0)
If Pos > 0
vtag.s = Mid(String, Pos+7, 13)
Pos=0
EndIf
;------------извлекаем vkid------------------------------
Pos = FindString(String, "vkid", 0)
If Pos > 0
vkid.s = Mid(String, Pos+7) ; убираем перед vkid
Poz = FindString(vkid.s, Chr(34), 0) ; получаем позицию после vkid
vkid.s = Mid(String, Pos+7,Poz-1) ; результат
Pos=0
;приводим к виду
URL.s= rez0.s + vtag + vkid.s + ".vk.flv"
EndIf
Until Pos =0
Wend
CloseFile(0)
EndIf
If Len(URL.s)> 35
SetGadgetText(#Web,URL.s) ; загружаем адрес flv
EndIf
EndIf
DeleteFile("Temp.html")
EndProcedure
CatchImage(#im_logo,?Im1, ?Im1End -?Im1 )
OpenWindow (#Window_0,0,0,800,600,"Скачать видео в кантакте",#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
ImageGadget(#im_logo,0,0,800,600,ImageID(#im_logo ))
Delay(2000)
ResizeGadget(#im_logo,-1000,#PB_Ignore,#PB_Ignore,#PB_Ignore)
StringGadget(#Strin, 10, 7, 250, 20, "Видео HD 720p" )
ButtonGadget(#Search, 270, 5, 70, 20,"Поиск")
ButtonGadget(#dow, 700, 5, 60, 20, "Скачать")
WebGadget(#Web,0,35,800,565,"http://vkontakte.ru/gsearch.php?section=video&q=%EA%E2%ED&name=1#c%5Bnoiphone%5D=1&c%5Bq%5D=квн&c%5Bsection%5D=video&ra=1")
ButtonGadget(#Return, 390, 5, 60, 20,"<<<")
ButtonGadget(#Stop, 455, 5, 35, 20,"Стоп")
ButtonGadget(#Restart, 495, 5, 60, 20,"Обновить")
ButtonGadget(#Forward, 560, 5, 60, 20,">>>")
Repeat
Event = WaitWindowEvent()
Window = EventWindow()
Gadget = EventGadget()
If Event=#PB_Event_SizeWindow ; Изменяем размер браузера при изменении размеров окна
ResizeGadget(#Web,#PB_Ignore,#PB_Ignore,WindowWidth(#Window_0)-0,WindowHeight(#Window_0)-35)
EndIf
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case #Search ; поиск в разделе видео
text.s= GetGadgetText(#Strin)
text.s= Trim(text.s) ; убираем пробелы
URL.s= "http://vkontakte.ru/gsearch.php?section=video&q=%EA%E2%ED&name=1#c%5Bnoiphone%5D=1&c%5Bq%5D="+text.s+"&c%5Bsection%5D=video&ra=1"
SetGadgetText(#Web,URL.s)
SetGadgetState(#Web, #PB_Web_Refresh)
Case #Return
SetGadgetState(#Web, #PB_Web_Back)
Case #Stop
SetGadgetState(#Web, #PB_Web_Stop)
Case #Restart
SetGadgetState(#Web, #PB_Web_Refresh)
Case #Forward
SetGadgetState(#Web, #PB_Web_Forward)
Case #dow
Download() ; скачать
EndSelect
EndSelect
If Event = #PB_Event_CloseWindow
Break
EndIf
ForEver
DataSection
Im1:
IncludeBinary "Лого.png"
Im1End:
EndDataSection