Что нового

[Сеть, интернет] Получить прямую ссылку на видео на Youtube (знание Lua)

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Версия AutoIt: 3.

Описание:
Необходимо получить прямую ссылку на произвольное видео Youtube.

Примечания:
Гугление показало, что это дело непростое, тем более, что генерация таких ссылок периодически меняется.
В то же время, например, VLC плеер может играть видеопоток с Youtube и без прямой ссылки, однако непонятно, какая именно часть VLC или плагин отвечает за это (?)

Что удалось найти в сети из сравнительно нового:
обсуждение в ветке про маршрутизаторы zyxel
http://forum.zyxmon.org/topic115-xupnpd-uluchshennyi-variant-pshare-extensible-upnp-agent-p58.html
Выложено несколько примеров Lua-скриптов, получающих прямую ссылку на видео.
С Lua практически не знаком, собственно, поэтому и создал эту тему.

Оттуда же:
Плагин (?) на Lua от VLC
http://jslover.secsrv.net/VLC/playlist/youtube.lua/view
Что это и что с этим делать, непонятно.

Программа на питоне для скачки видео с Youtube.
http://youtube-dl.org/
Аналогично, с питоном не знаком.

Для проверки можно использовать сайт.
http://keepvid.com/
Позволяет получить прямую ссылку на видео, которую можно проигрывать в том же VLC
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
http://habrahabr.ru/post/137496/ такая штука.

1. Делаешь запрос на www.youtube.com/get_video_info?video_id=
2. Расшифровываешь ответ (тебе в этом поможет EncodeUDF)
3. Профит

В статье описано, что и где лежит
 
Автор
W

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Medic84 сказал(а):
http://habrahabr.ru/post/137496/ такая штука.

1. Делаешь запрос на www.youtube.com/get_video_info?video_id=
2. Расшифровываешь ответ (тебе в этом поможет EncodeUDF)
3. Профит

В статье описано, что и где лежит

А статья с 2012 не устарела?
В моем посте выше по ссылкам люди пишут, что только этим летом несколько раз переделывали свои скрипты из-за изменений на ютубе.
И вообще-то хотелось, чтобы кто-то за меня сделал, поэтому и создал тему в этом разделе)
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Ну вот. Что-то уже получилось.
Код:
Global $sVideoUrl
For $c = 1 To 5; 5 попыток на скачивание
	Sleep(1000)
	$sVideoUrl = _youtube_getDirectLink("http://www.youtube.com/watch?v=PMnpwL35f3g") ; укажите там ссылку на видео...
	If @error Then ContinueLoop
	ConsoleWrite("=====>video_URL: " & $sVideoUrl & @CRLF)
	InetGet($sVideoUrl, @ScriptDir & '\video.mp4', 3) ; для проверки ссылки скачиваем по ней видео
	If @error Then ContinueLoop
	ConsoleWrite("=====>InetGet_error_code: " & @error & '/' & @extended & @CRLF)
	ExitLoop
Next


Func _youtube_getDirectLink($_sURL)
	Local $sUA, $sURL, $sPattern, $aRegexp, $sContent
	Local $sTxt, $sStreamUrl, $oResult, $aURLs, $sTitle, $s_quality, $s_url, $s_type, $aTmp
	Local $aStreamURLs[0]
	$sURL = $_sURL
	$sUA = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11"
	HttpSetUserAgent($sUA)
	$sPattern = "(?si)<script.*?>var.*?ytplayer.*?=.*?ytplayer.*?\|\|.*?\{\}\;.*?ytplayer\.config.*?=.*?\{.*?args.*?(\{.*?url_encoded_fmt_stream_map.*?\})[,;\[\{\s].*?</script>"
	$sContent = BinaryToString(InetRead($sURL), 4)
	$aRegexp = StringRegExp($sContent, $sPattern, 3)
	If @error Or Not IsArray($aRegexp) Then Return SetError(1, 0, 0)
	$sTxt = $aRegexp[0]
	$sTxt = StringReplace($sTxt, @CRLF, '\r\n')
	$sTxt = StringReplace($sTxt, @CR, '\r')
	$sTxt = StringReplace($sTxt, @LF, '\n')
	$sTxt = StringReplace($sTxt, "'", "\'")
	$sTxt = StringReplace($sTxt, '"', '\"')
	$oSC = ObjCreate("ScriptControl")
	If Not IsObj($oSC) Then Return SetError(2, 0, 0)
	$oSC.Language = "JavaScript"
	$oResult = $oSC.Eval("eval('(" & $sTxt & ")');")
	If Not IsObj($oResult) Then Return SetError(3, 0, 0)
	$sTitle = $oResult.title
	$sStreamUrl = $oResult.url_encoded_fmt_stream_map
	ConsoleWrite("video_title: " & $sTitle & @CRLF)
	ConsoleWrite("full_URL: " & $sStreamUrl & @CRLF)
	$aURLs = StringSplit($sStreamUrl, ',', 3)
	For $i = 0 To UBound($aURLs) - 1
		$s_quality = ""
		$s_url = ""
		$s_type = ""
		ConsoleWrite(StringFormat("split_URL#%s. %s\r\n", $i + 1, $aURLs[$i]))
		$aTmp = StringRegExp($aURLs[$i], 'quality=([^&]+)', 3)
		If IsArray($aTmp) Then $s_quality = $aTmp[0]
		$aTmp = StringRegExp($aURLs[$i], 'url=([^&]+)', 3)
		If IsArray($aTmp) Then $s_url = $aTmp[0]
		$aTmp = StringRegExp($aURLs[$i], 'type=([^&]+)', 3)
		If IsArray($aTmp) Then $s_type = $aTmp[0]
		$s_quality = __y_decodeURIComponent($s_quality)
		$s_url = __y_decodeURIComponent($s_url)
		$s_type = __y_decodeURIComponent($s_type)
		ConsoleWrite(StringFormat(@TAB & 'quality: %s\r\n' & @TAB & 'url: %s\r\n' & @TAB & 'type: %s\r\n', $s_quality, $s_url, $s_type))
		ReDim $aStreamURLs[$i + 1]
		$aStreamURLs[$i] = $s_url
	Next
	Return $aStreamURLs[0]
EndFunc   ;==>_youtube_getDirectLink

Func __y_encodeURIComponent($sTxt)
	$sTxt = StringReplace($sTxt, @CRLF, '\r\n')
	$sTxt = StringReplace($sTxt, @CR, '\r')
	$sTxt = StringReplace($sTxt, @LF, '\n')
	$sTxt = StringReplace($sTxt, "'", "\'")
	$sTxt = StringReplace($sTxt, '"', '\"')
	$oSC = ObjCreate("ScriptControl")
	If Not IsObj($oSC) Then Return SetError(1)
	$oSC.Language = "JavaScript"
	Return $oSC.Eval('encodeURIComponent("' & $sTxt & '");')
EndFunc   ;==>__y_encodeURIComponent
Func __y_decodeURIComponent($sTxt)
	$sTxt = StringReplace($sTxt, @CRLF, '\r\n')
	$sTxt = StringReplace($sTxt, @CR, '\r')
	$sTxt = StringReplace($sTxt, @LF, '\n')
	$sTxt = StringReplace($sTxt, "'", "\'")
	$sTxt = StringReplace($sTxt, '"', '\"')
	$oSC = ObjCreate("ScriptControl")
	If Not IsObj($oSC) Then Return SetError(1)
	$oSC.Language = "JavaScript"
	Return $oSC.Eval('decodeURIComponent("' & $sTxt & '");')
EndFunc   ;==>__y_decodeURIComponent

Результат выполнения в консоле:
Код:
video_title: ok google / что такое одноклассники / кто такие одноклассники / где логика
full_URL: url=http%3A%2F%2Fr4---sn-gvnuxaxjvh-aome.googlevideo.com%2Fvideoplayback%3Fexpire%3D1441464986%26sver%3D3%26key%3Dyt5%26pl%3D19%26initcwndbps%3D2256250%26dur%3D0.000%26upn%3D798ArD_EdJQ%26ratebypass%3Dyes%26signature%3D07325E3CF0B10FCFEFE53D8505DC686E8D30276E.80916EE8B18A488ECBEDBDB7FC1D31356E2F9E7A%26ms%3Dau%26mv%3Dm%26source%3Dyoutube%26mt%3D1441443334%26ip%3D213.167.218.135%26ipbits%3D0%26fexp%3D9405960%252C9407992%252C9408558%252C9408710%252C9409069%252C9415365%252C9415435%252C9415485%252C9416008%252C9416023%252C9416126%252C9417689%252C9417707%252C9417949%252C9418153%252C9418184%252C9418440%252C9418448%252C9419797%252C9419832%252C9420021%252C9420054%252C9420320%252C9420348%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cratebypass%252Csource%252Cupn%252Cexpire%26itag%3D43%26lmt%3D1426936895297422%26mime%3Dvideo%252Fwebm%26id%3Do-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934%26mn%3Dsn-gvnuxaxjvh-aome%26mm%3D31&itag=43&type=video%2Fwebm%3B+codecs%3D%22vp8.0%2C+vorbis%22&quality=medium&fallback_host=tc.v2.cache7.googlevideo.com,url=http%3A%2F%2Fr4---sn-gvnuxaxjvh-aome.googlevideo.com%2Fvideoplayback%3Fexpire%3D1441464986%26sver%3D3%26key%3Dyt5%26pl%3D19%26initcwndbps%3D2256250%26dur%3D41.447%26upn%3D798ArD_EdJQ%26ratebypass%3Dyes%26signature%3DA0CC4C00BA4774522E9831450ECBEEFAB2F85F85.CCE0101B479A0C5F2BDFB20AD739225C66714199%26ms%3Dau%26mv%3Dm%26source%3Dyoutube%26mt%3D1441443334%26ip%3D213.167.218.135%26ipbits%3D0%26fexp%3D9405960%252C9407992%252C9408558%252C9408710%252C9409069%252C9415365%252C9415435%252C9415485%252C9416008%252C9416023%252C9416126%252C9417689%252C9417707%252C9417949%252C9418153%252C9418184%252C9418440%252C9418448%252C9419797%252C9419832%252C9420021%252C9420054%252C9420320%252C9420348%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cratebypass%252Csource%252Cupn%252Cexpire%26itag%3D18%26lmt%3D1426936484435834%26mime%3Dvideo%252Fmp4%26id%3Do-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934%26mn%3Dsn-gvnuxaxjvh-aome%26mm%3D31&itag=18&type=video%2Fmp4%3B+codecs%3D%22avc1.42001E%2C+mp4a.40.2%22&quality=medium&fallback_host=tc.v7.cache5.googlevideo.com,url=http%3A%2F%2Fr4---sn-gvnuxaxjvh-aome.googlevideo.com%2Fvideoplayback%3Fexpire%3D1441464986%26sver%3D3%26initcwndbps%3D2256250%26dur%3D41.430%26ms%3Dau%26mv%3Dm%26mt%3D1441443334%26ip%3D213.167.218.135%26ipbits%3D0%26fexp%3D9405960%252C9407992%252C9408558%252C9408710%252C9409069%252C9415365%252C9415435%252C9415485%252C9416008%252C9416023%252C9416126%252C9417689%252C9417707%252C9417949%252C9418153%252C9418184%252C9418440%252C9418448%252C9419797%252C9419832%252C9420021%252C9420054%252C9420320%252C9420348%26pl%3D19%26mime%3Dvideo%252Fx-flv%26id%3Do-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934%26mn%3Dsn-gvnuxaxjvh-aome%26mm%3D31%26itag%3D5%26lmt%3D1426936483532163%26key%3Dyt5%26upn%3D798ArD_EdJQ%26signature%3D14D347735B9DED7D017E60344A911B5FE1B5F67A.6162FF1E47AD7A9391D688F129B156373BE89D2C%26source%3Dyoutube%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Csource%252Cupn%252Cexpire&itag=5&type=video%2Fx-flv&quality=small&fallback_host=tc.v6.cache6.googlevideo.com,url=http%3A%2F%2Fr4---sn-gvnuxaxjvh-aome.googlevideo.com%2Fvideoplayback%3Fexpire%3D1441464986%26sver%3D3%26initcwndbps%3D2256250%26dur%3D41.517%26ms%3Dau%26mv%3Dm%26mt%3D1441443334%26ip%3D213.167.218.135%26ipbits%3D0%26fexp%3D9405960%252C9407992%252C9408558%252C9408710%252C9409069%252C9415365%252C9415435%252C9415485%252C9416008%252C9416023%252C9416126%252C9417689%252C9417707%252C9417949%252C9418153%252C9418184%252C9418440%252C9418448%252C9419797%252C9419832%252C9420021%252C9420054%252C9420320%252C9420348%26pl%3D19%26mime%3Dvideo%252F3gpp%26id%3Do-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934%26mn%3Dsn-gvnuxaxjvh-aome%26mm%3D31%26itag%3D36%26lmt%3D1426936487539516%26key%3Dyt5%26upn%3D798ArD_EdJQ%26signature%3DEE27B048CD0AECEF09CCC52A30C5441B2852B3C2.76CEBCACD2DBE00C925CA1E845721188281C4F86%26source%3Dyoutube%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Csource%252Cupn%252Cexpire&itag=36&type=video%2F3gpp%3B+codecs%3D%22mp4v.20.3%2C+mp4a.40.2%22&quality=small&fallback_host=tc.v15.cache1.googlevideo.com,url=http%3A%2F%2Fr4---sn-gvnuxaxjvh-aome.googlevideo.com%2Fvideoplayback%3Fexpire%3D1441464986%26sver%3D3%26initcwndbps%3D2256250%26dur%3D41.517%26ms%3Dau%26mv%3Dm%26mt%3D1441443334%26ip%3D213.167.218.135%26ipbits%3D0%26fexp%3D9405960%252C9407992%252C9408558%252C9408710%252C9409069%252C9415365%252C9415435%252C9415485%252C9416008%252C9416023%252C9416126%252C9417689%252C9417707%252C9417949%252C9418153%252C9418184%252C9418440%252C9418448%252C9419797%252C9419832%252C9420021%252C9420054%252C9420320%252C9420348%26pl%3D19%26mime%3Dvideo%252F3gpp%26id%3Do-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934%26mn%3Dsn-gvnuxaxjvh-aome%26mm%3D31%26itag%3D17%26lmt%3D1426936485837134%26key%3Dyt5%26upn%3D798ArD_EdJQ%26signature%3DF95667AE9C9A8B404F3EE2268481EC3911859856.041AEA9EE9D66A85565CEF64F82F7BF661A7E7DE%26source%3Dyoutube%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Csource%252Cupn%252Cexpire&itag=17&type=video%2F3gpp%3B+codecs%3D%22mp4v.20.3%2C+mp4a.40.2%22&quality=small&fallback_host=tc.v3.cache8.googlevideo.com,url=http%3A%2F%2Fr4---sn-gvnuxaxjvh-aome.googlevideo.com%2Fvideoplayback%3Fexpire%3D1441464986%26sver%3D3%26initcwndbps%3D2256250%26dur%3D41.406%26ms%3Dau%26mv%3Dm%26mt%3D1441443334%26ip%3D213.167.218.135%26ipbits%3D0%26fexp%3D9405960%252C9407992%252C9408558%252C9408710%252C9409069%252C9415365%252C9415435%252C9415485%252C9416008%252C9416023%252C9416126%252C9417689%252C9417707%252C9417949%252C9418153%252C9418184%252C9418440%252C9418448%252C9419797%252C9419832%252C9420021%252C9420054%252C9420320%252C9420348%26pl%3D19%26mime%3Dvideo%252F3gpp%26id%3Do-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934%26mn%3Dsn-gvnuxaxjvh-aome%26mm%3D31%26itag%3D13%26lmt%3D1426936483231505%26key%3Dyt5%26upn%3D798ArD_EdJQ%26signature%3D355C926E8C6FCF2EB4FFCE29CD0CE0F07508B79E.74C5B2C543052C95AD1A39B73D95FF1018BD32CE%26source%3Dyoutube%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Csource%252Cupn%252Cexpire&itag=13&type=video%2F3gpp&quality=small&fallback_host=tc.v14.cache6.googlevideo.com
split_URL#1. url=http%3A%2F%2Fr4---sn-gvnuxaxjvh-aome.googlevideo.com%2Fvideoplayback%3Fexpire%3D1441464986%26sver%3D3%26key%3Dyt5%26pl%3D19%26initcwndbps%3D2256250%26dur%3D0.000%26upn%3D798ArD_EdJQ%26ratebypass%3Dyes%26signature%3D07325E3CF0B10FCFEFE53D8505DC686E8D30276E.80916EE8B18A488ECBEDBDB7FC1D31356E2F9E7A%26ms%3Dau%26mv%3Dm%26source%3Dyoutube%26mt%3D1441443334%26ip%3D213.167.218.135%26ipbits%3D0%26fexp%3D9405960%252C9407992%252C9408558%252C9408710%252C9409069%252C9415365%252C9415435%252C9415485%252C9416008%252C9416023%252C9416126%252C9417689%252C9417707%252C9417949%252C9418153%252C9418184%252C9418440%252C9418448%252C9419797%252C9419832%252C9420021%252C9420054%252C9420320%252C9420348%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cratebypass%252Csource%252Cupn%252Cexpire%26itag%3D43%26lmt%3D1426936895297422%26mime%3Dvideo%252Fwebm%26id%3Do-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934%26mn%3Dsn-gvnuxaxjvh-aome%26mm%3D31&itag=43&type=video%2Fwebm%3B+codecs%3D%22vp8.0%2C+vorbis%22&quality=medium&fallback_host=tc.v2.cache7.googlevideo.com
	quality: medium
	url: http://r4---sn-gvnuxaxjvh-aome.googlevideo.com/videoplayback?expire=1441464986&sver=3&key=yt5&pl=19&initcwndbps=2256250&dur=0.000&upn=798ArD_EdJQ&ratebypass=yes&signature=07325E3CF0B10FCFEFE53D8505DC686E8D30276E.80916EE8B18A488ECBEDBDB7FC1D31356E2F9E7A&ms=au&mv=m&source=youtube&mt=1441443334&ip=213.167.218.135&ipbits=0&fexp=9405960%2C9407992%2C9408558%2C9408710%2C9409069%2C9415365%2C9415435%2C9415485%2C9416008%2C9416023%2C9416126%2C9417689%2C9417707%2C9417949%2C9418153%2C9418184%2C9418440%2C9418448%2C9419797%2C9419832%2C9420021%2C9420054%2C9420320%2C9420348&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Csource%2Cupn%2Cexpire&itag=43&lmt=1426936895297422&mime=video%2Fwebm&id=o-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934&mn=sn-gvnuxaxjvh-aome&mm=31
	type: video/webm;+codecs="vp8.0,+vorbis"
split_URL#2. url=http%3A%2F%2Fr4---sn-gvnuxaxjvh-aome.googlevideo.com%2Fvideoplayback%3Fexpire%3D1441464986%26sver%3D3%26key%3Dyt5%26pl%3D19%26initcwndbps%3D2256250%26dur%3D41.447%26upn%3D798ArD_EdJQ%26ratebypass%3Dyes%26signature%3DA0CC4C00BA4774522E9831450ECBEEFAB2F85F85.CCE0101B479A0C5F2BDFB20AD739225C66714199%26ms%3Dau%26mv%3Dm%26source%3Dyoutube%26mt%3D1441443334%26ip%3D213.167.218.135%26ipbits%3D0%26fexp%3D9405960%252C9407992%252C9408558%252C9408710%252C9409069%252C9415365%252C9415435%252C9415485%252C9416008%252C9416023%252C9416126%252C9417689%252C9417707%252C9417949%252C9418153%252C9418184%252C9418440%252C9418448%252C9419797%252C9419832%252C9420021%252C9420054%252C9420320%252C9420348%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cratebypass%252Csource%252Cupn%252Cexpire%26itag%3D18%26lmt%3D1426936484435834%26mime%3Dvideo%252Fmp4%26id%3Do-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934%26mn%3Dsn-gvnuxaxjvh-aome%26mm%3D31&itag=18&type=video%2Fmp4%3B+codecs%3D%22avc1.42001E%2C+mp4a.40.2%22&quality=medium&fallback_host=tc.v7.cache5.googlevideo.com
	quality: medium
	url: http://r4---sn-gvnuxaxjvh-aome.googlevideo.com/videoplayback?expire=1441464986&sver=3&key=yt5&pl=19&initcwndbps=2256250&dur=41.447&upn=798ArD_EdJQ&ratebypass=yes&signature=A0CC4C00BA4774522E9831450ECBEEFAB2F85F85.CCE0101B479A0C5F2BDFB20AD739225C66714199&ms=au&mv=m&source=youtube&mt=1441443334&ip=213.167.218.135&ipbits=0&fexp=9405960%2C9407992%2C9408558%2C9408710%2C9409069%2C9415365%2C9415435%2C9415485%2C9416008%2C9416023%2C9416126%2C9417689%2C9417707%2C9417949%2C9418153%2C9418184%2C9418440%2C9418448%2C9419797%2C9419832%2C9420021%2C9420054%2C9420320%2C9420348&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Csource%2Cupn%2Cexpire&itag=18&lmt=1426936484435834&mime=video%2Fmp4&id=o-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934&mn=sn-gvnuxaxjvh-aome&mm=31
	type: video/mp4;+codecs="avc1.42001E,+mp4a.40.2"
split_URL#3. url=http%3A%2F%2Fr4---sn-gvnuxaxjvh-aome.googlevideo.com%2Fvideoplayback%3Fexpire%3D1441464986%26sver%3D3%26initcwndbps%3D2256250%26dur%3D41.430%26ms%3Dau%26mv%3Dm%26mt%3D1441443334%26ip%3D213.167.218.135%26ipbits%3D0%26fexp%3D9405960%252C9407992%252C9408558%252C9408710%252C9409069%252C9415365%252C9415435%252C9415485%252C9416008%252C9416023%252C9416126%252C9417689%252C9417707%252C9417949%252C9418153%252C9418184%252C9418440%252C9418448%252C9419797%252C9419832%252C9420021%252C9420054%252C9420320%252C9420348%26pl%3D19%26mime%3Dvideo%252Fx-flv%26id%3Do-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934%26mn%3Dsn-gvnuxaxjvh-aome%26mm%3D31%26itag%3D5%26lmt%3D1426936483532163%26key%3Dyt5%26upn%3D798ArD_EdJQ%26signature%3D14D347735B9DED7D017E60344A911B5FE1B5F67A.6162FF1E47AD7A9391D688F129B156373BE89D2C%26source%3Dyoutube%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Csource%252Cupn%252Cexpire&itag=5&type=video%2Fx-flv&quality=small&fallback_host=tc.v6.cache6.googlevideo.com
	quality: small
	url: http://r4---sn-gvnuxaxjvh-aome.googlevideo.com/videoplayback?expire=1441464986&sver=3&initcwndbps=2256250&dur=41.430&ms=au&mv=m&mt=1441443334&ip=213.167.218.135&ipbits=0&fexp=9405960%2C9407992%2C9408558%2C9408710%2C9409069%2C9415365%2C9415435%2C9415485%2C9416008%2C9416023%2C9416126%2C9417689%2C9417707%2C9417949%2C9418153%2C9418184%2C9418440%2C9418448%2C9419797%2C9419832%2C9420021%2C9420054%2C9420320%2C9420348&pl=19&mime=video%2Fx-flv&id=o-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934&mn=sn-gvnuxaxjvh-aome&mm=31&itag=5&lmt=1426936483532163&key=yt5&upn=798ArD_EdJQ&signature=14D347735B9DED7D017E60344A911B5FE1B5F67A.6162FF1E47AD7A9391D688F129B156373BE89D2C&source=youtube&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Csource%2Cupn%2Cexpire
	type: video/x-flv
split_URL#4. url=http%3A%2F%2Fr4---sn-gvnuxaxjvh-aome.googlevideo.com%2Fvideoplayback%3Fexpire%3D1441464986%26sver%3D3%26initcwndbps%3D2256250%26dur%3D41.517%26ms%3Dau%26mv%3Dm%26mt%3D1441443334%26ip%3D213.167.218.135%26ipbits%3D0%26fexp%3D9405960%252C9407992%252C9408558%252C9408710%252C9409069%252C9415365%252C9415435%252C9415485%252C9416008%252C9416023%252C9416126%252C9417689%252C9417707%252C9417949%252C9418153%252C9418184%252C9418440%252C9418448%252C9419797%252C9419832%252C9420021%252C9420054%252C9420320%252C9420348%26pl%3D19%26mime%3Dvideo%252F3gpp%26id%3Do-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934%26mn%3Dsn-gvnuxaxjvh-aome%26mm%3D31%26itag%3D36%26lmt%3D1426936487539516%26key%3Dyt5%26upn%3D798ArD_EdJQ%26signature%3DEE27B048CD0AECEF09CCC52A30C5441B2852B3C2.76CEBCACD2DBE00C925CA1E845721188281C4F86%26source%3Dyoutube%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Csource%252Cupn%252Cexpire&itag=36&type=video%2F3gpp%3B+codecs%3D%22mp4v.20.3%2C+mp4a.40.2%22&quality=small&fallback_host=tc.v15.cache1.googlevideo.com
	quality: small
	url: http://r4---sn-gvnuxaxjvh-aome.googlevideo.com/videoplayback?expire=1441464986&sver=3&initcwndbps=2256250&dur=41.517&ms=au&mv=m&mt=1441443334&ip=213.167.218.135&ipbits=0&fexp=9405960%2C9407992%2C9408558%2C9408710%2C9409069%2C9415365%2C9415435%2C9415485%2C9416008%2C9416023%2C9416126%2C9417689%2C9417707%2C9417949%2C9418153%2C9418184%2C9418440%2C9418448%2C9419797%2C9419832%2C9420021%2C9420054%2C9420320%2C9420348&pl=19&mime=video%2F3gpp&id=o-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934&mn=sn-gvnuxaxjvh-aome&mm=31&itag=36&lmt=1426936487539516&key=yt5&upn=798ArD_EdJQ&signature=EE27B048CD0AECEF09CCC52A30C5441B2852B3C2.76CEBCACD2DBE00C925CA1E845721188281C4F86&source=youtube&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Csource%2Cupn%2Cexpire
	type: video/3gpp;+codecs="mp4v.20.3,+mp4a.40.2"
split_URL#5. url=http%3A%2F%2Fr4---sn-gvnuxaxjvh-aome.googlevideo.com%2Fvideoplayback%3Fexpire%3D1441464986%26sver%3D3%26initcwndbps%3D2256250%26dur%3D41.517%26ms%3Dau%26mv%3Dm%26mt%3D1441443334%26ip%3D213.167.218.135%26ipbits%3D0%26fexp%3D9405960%252C9407992%252C9408558%252C9408710%252C9409069%252C9415365%252C9415435%252C9415485%252C9416008%252C9416023%252C9416126%252C9417689%252C9417707%252C9417949%252C9418153%252C9418184%252C9418440%252C9418448%252C9419797%252C9419832%252C9420021%252C9420054%252C9420320%252C9420348%26pl%3D19%26mime%3Dvideo%252F3gpp%26id%3Do-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934%26mn%3Dsn-gvnuxaxjvh-aome%26mm%3D31%26itag%3D17%26lmt%3D1426936485837134%26key%3Dyt5%26upn%3D798ArD_EdJQ%26signature%3DF95667AE9C9A8B404F3EE2268481EC3911859856.041AEA9EE9D66A85565CEF64F82F7BF661A7E7DE%26source%3Dyoutube%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Csource%252Cupn%252Cexpire&itag=17&type=video%2F3gpp%3B+codecs%3D%22mp4v.20.3%2C+mp4a.40.2%22&quality=small&fallback_host=tc.v3.cache8.googlevideo.com
	quality: small
	url: http://r4---sn-gvnuxaxjvh-aome.googlevideo.com/videoplayback?expire=1441464986&sver=3&initcwndbps=2256250&dur=41.517&ms=au&mv=m&mt=1441443334&ip=213.167.218.135&ipbits=0&fexp=9405960%2C9407992%2C9408558%2C9408710%2C9409069%2C9415365%2C9415435%2C9415485%2C9416008%2C9416023%2C9416126%2C9417689%2C9417707%2C9417949%2C9418153%2C9418184%2C9418440%2C9418448%2C9419797%2C9419832%2C9420021%2C9420054%2C9420320%2C9420348&pl=19&mime=video%2F3gpp&id=o-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934&mn=sn-gvnuxaxjvh-aome&mm=31&itag=17&lmt=1426936485837134&key=yt5&upn=798ArD_EdJQ&signature=F95667AE9C9A8B404F3EE2268481EC3911859856.041AEA9EE9D66A85565CEF64F82F7BF661A7E7DE&source=youtube&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Csource%2Cupn%2Cexpire
	type: video/3gpp;+codecs="mp4v.20.3,+mp4a.40.2"
split_URL#6. url=http%3A%2F%2Fr4---sn-gvnuxaxjvh-aome.googlevideo.com%2Fvideoplayback%3Fexpire%3D1441464986%26sver%3D3%26initcwndbps%3D2256250%26dur%3D41.406%26ms%3Dau%26mv%3Dm%26mt%3D1441443334%26ip%3D213.167.218.135%26ipbits%3D0%26fexp%3D9405960%252C9407992%252C9408558%252C9408710%252C9409069%252C9415365%252C9415435%252C9415485%252C9416008%252C9416023%252C9416126%252C9417689%252C9417707%252C9417949%252C9418153%252C9418184%252C9418440%252C9418448%252C9419797%252C9419832%252C9420021%252C9420054%252C9420320%252C9420348%26pl%3D19%26mime%3Dvideo%252F3gpp%26id%3Do-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934%26mn%3Dsn-gvnuxaxjvh-aome%26mm%3D31%26itag%3D13%26lmt%3D1426936483231505%26key%3Dyt5%26upn%3D798ArD_EdJQ%26signature%3D355C926E8C6FCF2EB4FFCE29CD0CE0F07508B79E.74C5B2C543052C95AD1A39B73D95FF1018BD32CE%26source%3Dyoutube%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Csource%252Cupn%252Cexpire&itag=13&type=video%2F3gpp&quality=small&fallback_host=tc.v14.cache6.googlevideo.com
	quality: small
	url: http://r4---sn-gvnuxaxjvh-aome.googlevideo.com/videoplayback?expire=1441464986&sver=3&initcwndbps=2256250&dur=41.406&ms=au&mv=m&mt=1441443334&ip=213.167.218.135&ipbits=0&fexp=9405960%2C9407992%2C9408558%2C9408710%2C9409069%2C9415365%2C9415435%2C9415485%2C9416008%2C9416023%2C9416126%2C9417689%2C9417707%2C9417949%2C9418153%2C9418184%2C9418440%2C9418448%2C9419797%2C9419832%2C9420021%2C9420054%2C9420320%2C9420348&pl=19&mime=video%2F3gpp&id=o-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934&mn=sn-gvnuxaxjvh-aome&mm=31&itag=13&lmt=1426936483231505&key=yt5&upn=798ArD_EdJQ&signature=355C926E8C6FCF2EB4FFCE29CD0CE0F07508B79E.74C5B2C543052C95AD1A39B73D95FF1018BD32CE&source=youtube&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Csource%2Cupn%2Cexpire
	type: video/3gpp
=====>video_URL: http://r4---sn-gvnuxaxjvh-aome.googlevideo.com/videoplayback?expire=1441464986&sver=3&key=yt5&pl=19&initcwndbps=2256250&dur=0.000&upn=798ArD_EdJQ&ratebypass=yes&signature=07325E3CF0B10FCFEFE53D8505DC686E8D30276E.80916EE8B18A488ECBEDBDB7FC1D31356E2F9E7A&ms=au&mv=m&source=youtube&mt=1441443334&ip=213.167.218.135&ipbits=0&fexp=9405960%2C9407992%2C9408558%2C9408710%2C9409069%2C9415365%2C9415435%2C9415485%2C9416008%2C9416023%2C9416126%2C9417689%2C9417707%2C9417949%2C9418153%2C9418184%2C9418440%2C9418448%2C9419797%2C9419832%2C9420021%2C9420054%2C9420320%2C9420348&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Csource%2Cupn%2Cexpire&itag=43&lmt=1426936895297422&mime=video%2Fwebm&id=o-AEVXmkzt91IdorzfggqXDNEBQR_qHRj7VhpMhTrDG934&mn=sn-gvnuxaxjvh-aome&mm=31
=====>InetGet_error_code: 0/0

>Exit code: 0    Time: 2.501
А также в папке со скриптом появляется файл video.mp4, который нормально закачался и нормально воспроизводится.
Всё работает!
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Код:
#include <Encoding.au3>
#include <Array.au3>

$aArray = _GetYoutubeLinks("JCYIwiT0X98")

_ArrayDisplay($aArray)

Func _GetYoutubeLinks($sVideoID)
	Local $sURLs = "", $aURLs

	$sStr = BinaryToString(InetRead("http://www.youtube.com/get_video_info?video_id=" & $sVideoID), 4)
	$sStr = _Encoding_HexToURL($sStr)
	$aSplit = StringSplit($sStr, ",&")
	For $i = 1 To UBound($aSplit) - 1
		If (Not (StringLeft($aSplit[$i], 4) = "url=")) And (Not (StringLeft($aSplit[$i], 5) = "=url=")) Then ContinueLoop
		$sURL = StringRegExpReplace($aSplit[$i], ".?url=", "")
		$sURLs &= _Encoding_HexToURL(_Encoding_HexToURL($sURL)) & @CRLF
	Next
	$aURLs = StringSplit($sURLs, @CRLF, 3)
	Return $aURLs
EndFunc   ;==>_GetYoutubeLinks


Какая ссылка за какой формат отвечает, думаю, разберешься ;)
Библиотека: Encoding UDF
 
Автор
W

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
alex33
Medic84
Спасибо за примеры!
Как я предполагал, работают не со всеми видео, но поддержка абсолютно все роликов и не нужна.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
OffTopic:
WSWR сказал(а):
работают не со всеми видео, но поддержка абсолютно все роликов и не нужна.
Что-то не встречал ещё таких видео. Просто интересно. Покажите какой-нибудь такой ролик, посмотрю что там можно сделать...
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
#include 'encoding.au3'
Func _truba($ytu_link)
;~ $ytu_link = 'http://www.youtube.com/watch?feature=player_embedded&v=kaIZWjItReI'


Local $sLink

	$ytu_link = 'http://www.youtube.com/watch?v=' & _
			StringRegExpReplace($ytu_link, '(?i).*?www.youtube.com/.*?v=(\S{11}).*', '\1')
	$iTim = TimerInit()
	While 1
		$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
		$oHTTP.Open('GET', $ytu_link)
		$oHTTP.SetRequestHeader('User-Agent', 'aubro')
		$oHTTP.SetRequestHeader('Connection', 'keep-alive')
		$oHTTP.Send('')
		$sResponse = $oHTTP.Responsetext

		If Not StringRegExp($sResponse, '"url_encoded_fmt_stream_map":') Then
			If TimerDiff($iTim) > 120000 Then Exit 3
			Sleep(5000)
			ContinueLoop
		EndIf
		$sTitle = StringRegExpReplace($sResponse, _
				'(?s).*?<meta name="title" content="(.*?)">.*', '\1')
		$sTitle = StringRegExpReplace($sTitle, '[\/<>?*:"|&;]', " ")
		$sTitle = StringRegExpReplace($sTitle, '[^A-zА-яЁё]', " ")
		$sTitle = StringReplace($sTitle, 'quot', '')
		$sTitle = StringReplace($sTitle, 'amp;', '')
		TraySetToolTip($sTitle)
		$sResponse = StringRegExpReplace($sResponse, '(?s).*?"url_encoded_fmt_stream_map":.*?"(.*?)",.*', '\1')
		$sResponse &= StringRegExpReplace($oHTTP.Responsetext, '(?s).*?"adaptive_fmts":.*?"(.*?)",.*', ',\1')
		$oZpt = StringSplit($sResponse, ',')


		Select
			Case StringRegExp($sResponse, 'itag=22');720
				$qual = '22'
			Case StringRegExp($sResponse, 'itag=18');360
				$qual = '18'
			Case StringRegExp($sResponse, 'itag=5');240
				$qual = '5'
		EndSelect

		For $i = 1 To $oZpt[0]
			If StringRegExp($oZpt[$i], 'itag=' & $qual) Then

$sLink=StringReplace(_Encoding_HextoURL($oZpt[$i]),'url=','')

$sLink=StringRegExpReplace($sLink,'.*(http[^\\]+).*','\1')
				ExitLoop
			EndIf
		Next

			$oHTTP.Open("HEAD", $sLink)
			$oHTTP.SetRequestHeader("Accept", "*/*")
			$oHTTP.SetRequestHeader("User-Agent", "aubro")
			$oHTTP.Send()
			$oHTTP.WaitForResponse
			$size = $oHTTP.GetResponseHeader("Content-Length")
			Select
				Case $size <> 0
					ExitLoop
			EndSelect
		Select
			Case TimerDiff($iTim) > 120000
				IniWrite('D:\1\1\1\bac\tube.ini', $sTitle, 'link', $ytu_link)
				IniWrite('D:\1\1\1\bac\tube.ini', $sTitle, 'size', $size)
				SoundPlay('D:\Музыка\Metallica\1\Boo.wav', 1)
				Exit 3
		EndSelect
		$oHTTP = 0
		Sleep(5000)
	WEnd


	Return $sLink

EndFunc   ;==>_truba
 

uritalex

Новичок
Сообщения
197
Репутация
3
"А также в папке со скриптом появляется файл video.mp4, который нормально закачался и нормально воспроизводится." Осталось добавить замену названия файла на название скачиваемого ролика, и в папке с роликом создавать текстовый файл с названием, описанием и тегами :smile: Вот сказанул, реально ли это?
 
Автор
W

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
alex33
Например, http://www.youtube.com/watch?v=GgDxv0Qg_Rg
Что-то вроде защищенных или каких-то официально добавленных видеороликов (не особо разбираюсь в этом), и они довольно часто встречаются
Взял отсюда http://forum.zyxmon.org/topic115-xupnpd-uluchshennyi-variant-pshare-extensible-upnp-agent-p58.html
Там в конце концов приводится скрипт, который как-будто получает ссылку на этот ролик.

sngr
Спасибо, тоже хороший пример, вроде если WinHttp.WinHttpRequest заменить на просто InetRead, тоже работает

OffTopic:

Мне, собственно, надо перевести это на другой язык, а там с использованием COM, которое в Autoit несложно, большие проблемы.
Наверно, еще и под linux версия.
В любом случае, для меня эти примеры- большой шаг вперед. Отличный у нас форум)


uritalex
Так в примере от alex33 практически все это есть.
 

uritalex

Новичок
Сообщения
197
Репутация
3
Вник :smile: и получил название файла. Изменил следующую строку:
Код:
InetGet($sVideoUrl, $sTitles & '.mp4', 3, 0)

И сделал глобальной переменную $sTitles (бывшая $sTitle)
А по поводу того что не качает все файлы так это правда. Дело в том что некоторые видео в названии имеют различные знаки ка : №, #,@,& и так далее так вот такие файлы и не качает.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
uritalex [?]
А по поводу того что не качает все файлы так это правда. Дело в том что некоторые видео в названии имеют различные знаки ка : №, #,@,& и так далее так вот такие файлы и не качает.

Так удаляйте эти символы

Код:
$sTitles = "Строка№ с# запрещенными\ символами/|%^&?"

$sTitles = StringRegExpReplace($sTitles, "[\$\^%#@№&\\\|\/\?]", "")
ConsoleWrite($sTitles & @CRLF)
 

uritalex

Новичок
Сообщения
197
Репутация
3
Благодарю, буду прикручивать :smile: К моему большому сожалению я не силен в таких выражениях, не понимаю я их. В сфере информатики/программирования не силен да и учиться как то поздновато.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
uritalex [?]
да и учиться как то поздновато
Вам сколько лет? Я, например, узнал о существовании AutoIt за 2 недели до своего 50-летия и с тех пор учусь.

PS
OffTopic:
Учиться никогда не поздно.
В.И.Ленин
 

uritalex

Новичок
Сообщения
197
Репутация
3
OffTopic:
Ух блин :shok:, я то думал что тут только молодые да одаренные, и что я в свои 34 влез как пенсионер на дискотеку :whistle: Да забираю свои слова обратно. А Вам реальное "респект и уважуха"
 
Верх