本帖最后由 skysmile 于 2022-2-21 10:16 编辑
采集消逝的过去在优酷的视频教程,并用第三方解析成m3u8格式链接,在线播放,无广告,高清。
- #NoTrayIcon
- #RequireAdmin
- #AutoIt3Wrapper_Outfile=消逝的过去Autoit3视频教程.Exe
- #AutoIt3Wrapper_Compression=4
- #AutoIt3Wrapper_UseX64=n
- #AutoIt3Wrapper_Res_Fileversion=1.0
- #AutoIt3Wrapper_Res_ProductVersion=1.0
- #AutoIt3Wrapper_Res_Language=2052
- #AutoIt3Wrapper_Run_Tidy=y
- #include <ButtonConstants.au3>
- #include <GUIConstantsEx.au3>
- #include <GUIListBox.au3>
- #include <StaticConstants.au3>
- #include <WindowsConstants.au3>
- #include <Inet.au3>
- #include <IE.au3>
- #include <array.au3>
- #include <GuiListView.au3>
- #include <GuiMenu.au3>
- #include "WinHttp.au3"
- Global $Video_list[1][2], $Lsv_Video
- Const $HTML = '<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="x-ua-compatible"content="IE=edge">' & _
- '<meta name="viewport"content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/>' & _
- '<title>标题</title><link rel="stylesheet"/>' & _
- '<script type="text/javascript"charset="utf-8"src="https://g.alicdn.com/de/prismplayer/2.9.17/aliplayer-min.js"></script></head>' & _
- '<body style="overflow-y:hidden;overflow-x:hidden; margin:0"><div class="prism-player"id="player-con"></div>' & _
- '<script>var player=new Aliplayer({"id":"player-con","source":"视频源","width":"720px","height":"375px","autoplay":false,"isLive":false,"rePlay":false,' & _
- '"videoHeight":"","playsinline":true,"preload":true,"autoPlayDelay":"3","autoPlayDelayDisplayText":"视频正在缓冲...","controlBarVisibility":"hover",' & _
- '"videoWidth":"","useH5Prism":true,"skinLayout":[{"name":"bigPlayButton","align":"blabs","x":30,"y":80},{"name":"H5Loading","align":"cc"},{"name":"errorDisplay",' & _
- '"align":"tlabs","x":0,"y":0},{"name":"infoDisplay"},{"name":"tooltip","align":"blabs","x":0,"y":56},{"name":"controlBar","align":"blabs","x":0,"y":0,' & _
- '"children":[{"name":"progress","align":"blabs","x":0,"y":44},{"name":"playButton","align":"tl","x":15,"y":12},{"name":"timeDisplay","align":"tl","x":10,"y":7},' & _
- '{"name":"fullScreenButton","align":"tr","x":10,"y":12},{"name":"setting","align":"tr","x":15,"y":12},{"name":"volume","align":"tr","x":5,"y":10}]}]},' & _
- 'function(player){console.log("The player is created")});document.oncontextmenu=function(){return false}</script></body></html>'
- $hGUI = GUICreate("消逝的过去Autoit3视频", 566, 361, 1037, 357)
- GUISetFont(9, 400, 0, "微软雅黑")
- $Lsv_Video = GUICtrlCreateListView("视频名|", 5, 5, 208, 330, BitOR($LVS_SORTASCENDING, $LVS_SINGLESEL, $LVS_NOCOLUMNHEADER, $LVS_EX_GRIDLINES))
- _GUICtrlListView_SetColumnWidth($Lsv_Video, 0, 180)
- $Label1 = GUICtrlCreateLabel("说明" & @LF & _
- "1:视频来自于优酷" & @LF & _
- "2:双击列表即可播放,或许你可能要等一哈" & @LF & _
- "3:由于调用第三方解析,可能有点慢,或者失败" & @LF & _
- "4:弹出播放禁用最大化按钮,如果想最大化请点页面右下角的最大化", 230, 16, 315, 112)
- $Label2 = GUICtrlCreateLabel("", 230, 160, 315, 120)
- GUICtrlSetColor(-1, 0xFF0000)
- GUICtrlSetFont(-1, 12, 400)
- $Button1 = GUICtrlCreateButton("AU3中文论坛", 230, 292, 100, 32)
- $Button2 = GUICtrlCreateButton("AU3英文论坛", 340, 292, 100, 32)
- $Button3 = GUICtrlCreateButton("QQ群:318031798", 450, 292, 100, 32)
- GUISetState(@SW_SHOW)
- Video() ;提前加载视频到列表
- GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
- While 1
- $nMsg = GUIGetMsg()
- Switch $nMsg
- Case $GUI_EVENT_CLOSE
- Exit
- Case $Button1
- ShellExecute("https://www.autoitx.com/")
- Case $Button2
- ShellExecute("https://www.autoitscript.com/forum/")
- Case $Button3
- ShellExecute("https://qm.qq.com/cgi-bin/qm/qr?k=sTydkYhuLhqeQP3FUDYcDW8DeK9P7Rbf&jump_from=webapi")
- EndSwitch
- WEnd
- ;提取所有教程列表
- Func Video()
- _GUICtrlListView_DeleteAllItems($Lsv_Video)
- $Source = BinaryToString(_INetGetSource("http://i.youku.com/i/UMjQ1MDI0NDQ4/videos?spm=a2hzp.%208244740%20.0.0&qq-pf-to=pcqq.group", False), 4)
- $aArray = StringRegExp($Source, '<a class="videoitem_videolink aplus_exp aplus_clk" href="([^<>]+?)" title="([^<>]+?)" target="_blank"', 3)
- If IsArray($aArray) And Mod(UBound($aArray), 2) = 0 Then
- ReDim $Video_list[UBound($aArray) / 2][2]
- For $i = 0 To UBound($Video_list) - 1
- $Video_list[$i][0] = StringMid($aArray[$i * 2 + 1], 1) ;标题
- $Video_list[$i][1] = "https:" & $aArray[$i * 2] ;链接
- _GUICtrlListView_AddItem($Lsv_Video, $Video_list[$i][0])
- Next
- EndIf
- EndFunc ;==>Video
- ;列表事件
- Func WM_NOTIFY($hWndGUI, $MsgID, $WParam, $LParam)
- Local $tagNMHDR, $Event, $IDFrom, $Index, $Title, $New_HTML, $URL
- Local $tagNMHDR = DllStructCreate("int;int;int;", $LParam)
- If @error Then Return $GUI_RUNDEFMSG
- $IDFrom = DllStructGetData($tagNMHDR, 2)
- $Event = DllStructGetData($tagNMHDR, 3)
- $tagNMHDR = 0
- Switch $IDFrom
- Case $Lsv_Video ;列表
- Switch $Event
- Case $NM_CLICK ;单击
- Case $NM_DBLCLK ;双击
- $Index = _GUICtrlListView_GetSelectedIndices($Lsv_Video)
- $Text = _GUICtrlListView_GetItemText($Lsv_Video, Number($Index)) ;由于获取的$Index不是数值,这里需要用Number处理下
- GUICtrlSetData($Label2, $Text & @CRLF & ">>解析中,请稍候")
- For $i = 0 To UBound($Video_list) - 1
- If $Text = $Video_list[$i][0] Then
- $URL = m3u8($Video_list[$i][1])
- $Title = $Video_list[$i][0]
- m3u8_play($Title, $URL)
- GUICtrlSetData($Label2, "")
- EndIf
- Next
- EndSwitch
- EndSwitch
- EndFunc ;==>WM_NOTIFY
- Func m3u8($URL) ;利用第三方解析出m3u8地址
- ;https://www.moyicen.xyz/export.php
- $hOpen = _WinHttpOpen("User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36")
- $hConnect = _WinHttpConnect($hOpen, "https://www.moyicen.xyz")
- $sAdditionalData = 'urls=' & $URL & ''
- $sReturned = _WinHttpSimpleSSLRequest($hConnect, "POST", "export.php", Default, $sAdditionalData)
- $name = StringRegExp($sReturned, '"data":"([\s\S]*?)"', 3)
- $txt = BinaryToString(_INetGetSource("https://www.moyicen.xyz/download/" & $name[0], False), 4)
- $txt = StringRegExpReplace($txt, "([\s\S]*?)http", "http")
- $txt = StringReplace($txt, Chr(10), "")
- $txt = StringReplace($txt, Chr(13), "")
- Return $txt
- EndFunc ;==>m3u8
- Func m3u8_play($Title, $URL) ;弹出IE播放视频
- $New_HTML = StringRegExpReplace($HTML, "标题", $Title)
- $New_HTML = StringRegExpReplace($New_HTML, "视频源", $URL)
- $oIE = ObjCreate("InternetExplorer.Application.1")
- $oIE.menubar = 0
- $oIE.AddressBar = 0
- $oIE.TooBar = 0
- $oIE.StarusBar = 0
- $oIE.visible = 1
- $oIE.RegisterAsBrowser = 1
- $oIE.Resizable = 0
- $oIE.width = 730
- $oIE.height = 410
- _IENavigate($oIE, "about:blank")
- _IEDocWriteHTML($oIE, $New_HTML)
- EndFunc ;==>m3u8_play
复制代码
已编译_消逝的过去Autoit3视频教程.zip
(714.61 KB, 下载次数: 24)
WinHttp_UDF.zip
(29.79 KB, 下载次数: 5)
消逝的过去Autoit3视频源码.zip
(3.33 KB, 下载次数: 4)
|