本帖最后由 冰狐 于 2020-8-4 08:25 编辑
前些日子工作忙,挺久没更新了,修复一下BUG...
工作需要,,,找了挺多的类似工具,, 不是不能用了,就是要收费的,,所以么就花了1小时左右写了这个小工具,然后前后大概又花了1天时间修复BUG
大家都好懒...就动两下手指的事情么~ 用模拟器,手动也快.. CTRL + V CTRL + V CTRL + V
-------------------------------------------------------------------------
使用方法
-------------------------------------------------------------------------
短视频分享里面有个 复制连接 ,, 然后发送到PC电脑上
如 抖音的分享链接:
大漠越野,沙漠中行驶的巴哈,超越了飞机的速度@抖音小助手 h ttps://v.douyin com/JL5ySuN/ 复制此链接,打开【抖音短视频】,直接观看视频!
使用提示: 单视频的统一下载.. (注意: 目前不是作者页面分享链接的批量下载 ) 看图例就明白了..
先用记事本等编辑器,或者其他,比如微信里的,QQ里的都可以,,,保存好分享的链接,, 然后一起粘贴进去,,统一下载. 提高点效率
=============================================
短视频无水印视频提取工具 更新及修复日志
版本: V2.4
=============================================
版本 V2.4 (抖音 , 快手 , 微视)
日期: 2020年8月4日
功能改进: 修复 快手变动导致的解析BUG
完善 保存视频文件路径的BUG
蓝奏云 https://www.lanzoux.com/icxPtf9wpja
百度云 链接:https://pan.baidu.com/s/1PnB_HBheusg0TRboVE5ugA 提取码:zdx3
案例截图: (测试,)
随便拿了个方便一点的软件来写了,, 这个是 TC脚本开发软件 写的源码了.
版本: V2.4
变量 线程ID
变量 headerUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
功能 短视频无水印提取小工具_初始化()
浏览框设置文本("浏览框0", 文件读配置("短视频无水印提取", "保存路径", 系统获取进程路径() & "config.ini"))
结束
功能 短视频无水印提取小工具_销毁()
线程关闭("线程ID")
结束
功能 按钮0_点击()
如果(线程获取状态(线程ID) == 假)
线程ID = 线程开启("开始", "")
否则
消息框("正在下载中,请稍等片刻", "短视频无水印提取小工具")
结束
结束
功能 按钮2_点击()
表格删除非固定行("表格0")
变量 retarr = 数组(), len, 内容 = 数组(), 标题 = 数组(1), 网址 = 数组(1), 计次 = 0
字符串分割(编辑框获取文本("编辑框0"), "\n", retarr)
len = 数组大小(retarr)
遍历(变量 i = 0; i < len; i++)
如果(字符串长度(retarr[i]) > 10)
标题 = 正则表达式匹配(retarr[i], "[^\\x00-\\xff]+")
如果(数组大小(标题) != 1)
标题[0] = 随机数(1000000, 9999999)
结束
网址 = 正则表达式匹配(retarr[i], "[a-zA-z]+://[^\\s]*")
//调试输出(标题 & " " & 网址)
如果(数组大小(网址) > 0)
计次 = 计次 + 1
如果(字符串查找(网址[0], "douyin.com") > 0 || 字符串查找(网址[0], "【抖音") > 0)
数组追加元素(内容, 数组("抖音", 标题[0], 网址[0]))
表格插入行("表格0", 数组(计次, "抖音", 标题[0], 网址[0], ""))
结束
如果(字符串查找(网址[0], "kuaishou.com") > 0 || 字符串查找(网址[0], "【快手") > 0)
数组追加元素(内容, 数组("快手", 标题[0], 网址[0]))
表格插入行("表格0", 数组(计次, "快手", 标题[0], 网址[0], ""))
结束
如果(字符串查找(网址[0], "h5.weishi.qq.com") > 0)
数组追加元素(内容, 数组("微视", 标题[0], 网址[0]))
表格插入行("表格0", 数组(计次, "微视", 标题[0], 网址[0], ""))
结束
结束
结束
结束
结束
功能 开始()
变量 r_row, r_col, 内容 = 数组(4)
按钮设置文本("按钮0", "正在下载")
表格获取大小("表格0", r_row, r_col)
遍历(变量 i = 1; i <= r_row; i++)
数组清空(内容)
内容["编号"] = i
内容["版本"] = 表格获取内容("表格0", i, 1)
内容["标题"] = 表格获取内容("表格0", i, 2)
内容["链接"] = 表格获取内容("表格0", i, 3)
选择(内容["版本"])
条件 "抖音"
抖音解析(内容)
条件 "快手"
快手解析(内容)
条件 "微视"
微视解析(内容)
结束
结束
按钮设置文本("按钮0", "2 下载")
结束
功能 抖音解析(参数)//编号,版本,标题,链接
变量 header = 数组(), ret, retarr_ids = 数组(), url, retarr_json = 数组(), 有水印URL, 无水印URL, 内容 = 数组()
header["User-Agent"] = headerUserAgent
ret = http提交请求("get", 参数["链接"], "", "UTF-8", header, "", 假)
retarr_ids = 正则表达式匹配(ret, "[\\d]{19}")
如果(数组大小(retarr_ids) == 1)
url = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=" & retarr_ids[0] & "&dytk="
ret = http提交请求("get", url, "", "UTF-8", header, "")
retarr_json = json转数组(ret)
如果(数组大小(retarr_json) > 1)
有水印URL = retarr_json["item_list"][0]["video"]["play_addr"]["url_list"][0][0]
无水印URL = 字符串替换(有水印URL, "playwm", "play")
如果(字符串查找(无水印URL, "http") == 0)
ret = http提交请求("get", 无水印URL, "", "UTF-8", header, "")
内容 = 正则表达式匹配(ret, "[a-zA-z]+://[^\">]*")
如果(数组大小(内容) == 1)
如果(下载视频(内容[0], 参数) == 真)
返回 真
结束
结束
结束
结束
结束
返回 假
结束
功能 快手解析(参数)//编号,版本,标题,链接
变量 header = 数组(), response, retarr = 数组(), ret, ret_arr = 数组(), share_url
header["User-Agent"] = headerUserAgent
遍历(变量 i = 0; i < 3; i++)
http提交请求("get", 参数["链接"], "", "UTF-8", header, response, 假)
share_url = 字符串截取(response, 字符串查找(response, "https"), 字符串查找(response, "timestamp") + 23)
retarr = 正则表达式匹配(response, "Set-Cookie: (?<grp0>[^;]+)", 假, 真)
如果(数组大小(retarr) == 2)
header["Cookie"] = 字符串替换(retarr[0], "Set-Cookie: ", "") & ";" & 字符串替换(retarr[1], "Set-Cookie: ", "")
ret = http提交请求("get", share_url, "", "UTF-8", header, "", 假)
ret_arr = 正则表达式匹配(ret, "srcNoMark\":\"(?<grp0>.+?).mp4")
如果(数组大小(ret_arr) == 1)
ret = 字符串截取(ret_arr[0], 12, 字符串长度(ret_arr[0]))
//调试输出(ret)
如果(下载视频(ret, 参数) == 真)
返回 真
结束
结束
否则
等待(随机数(1000, 2000))
结束
结束
返回 假
结束
功能 微视解析(参数)//编号,版本,标题,链接
如果(字符串查找(参数["链接"], "/weishi/feed") > 0)
微视解析方法1(参数)
结束
如果(字符串查找(参数["链接"], "/weishi/wsplay/challenge") > 0)
微视解析方法2(参数)
结束
结束
功能 微视解析方法1(参数)
变量 post_url, ret, payload, feedid, id, 内容 = 数组()
id = 字符串截取(参数["链接"], 字符串查找(参数["链接"], "&id=") + 4, 字符串查找(参数["链接"], "&spid="))
feedid = 字符串截取(参数["链接"], 字符串查找(参数["链接"], "/feed/") + 6, 字符串查找(参数["链接"], "/wsfeed?"))
payload = "{\"feedid\": \"" & feedid & "\", \"recommendtype\": 0, \"datalvl\": \"all\", \"_weishi_mapExt\": {}}"
post_url = "https://h5.weishi.qq.com/webapp/json/weishi/WSH5GetPlayPage"
ret = 微视Post(post_url, payload)
内容 = json转数组(ret)
如果(数组大小(内容) > 2)
如果(下载视频(内容["data"]["feeds"][0]["video_url"], 参数) == 真)
返回 真
结束
结束
返回 假
结束
功能 微视解析方法2(参数)
变量 post_url, ret, payload, challege_id, feedid, 内容 = 数组()
feedid = 字符串截取(参数[2], 字符串查找(参数[2], "feedid=") + 7, 字符串查找(参数[2], "&challegeid="))
challege_id = 字符串截取(参数[2], 字符串查找(参数[2], "challegeid=") + 11, 字符串查找(参数[2], "&spid="))
payload = "{\"feedid\":\"" & feedid & "\",\"challege_id\":\"" & challege_id & "\",\"type\":0}"
post_url = "https://h5.weishi.qq.com/webapp/json/challenge_feedrank/GetChallengeFeedDetail"
ret = 微视Post(post_url, payload)
内容 = json转数组(ret)
如果(数组大小(内容) > 2)
如果(下载视频(内容["data"]["feedinfos"][0]["video_url"], 参数) == 真)
返回 真
结束
结束
返回 假
结束
功能 微视Post(posturl, params)
变量 http = 插件("MSXML2.ServerXMLHTTP")
http.Open("post", posturl, 假)
http.setRequestHeader("user-agent", headerUserAgent)
http.setRequestHeader("content-type", "application/json")
http.send(params)
变量 ret = (http.responseText)
http = null
返回 ret
结束
功能 下载视频(参数网址, 参数)//编号,版本,标题,链接
变量 保存目录 = 浏览框获取文本("浏览框0")
如果(保存目录 == "" || 保存目录 == null)
如果(文件是否存在(系统获取进程路径() & "视频下载") != 2)
文件夹创建(系统获取进程路径() & "视频下载")
结束
结束
如果(http下载(参数网址, 保存目录 & 参数["标题"] & 随机数(100000, 999999) & ".mp4", 数组(), "") == 1)
表格设置内容("表格0", 参数["编号"], 1, "OK")
表格设置内容("表格0", 参数["编号"], 3, 参数网址)
返回 真
结束
返回 假
结束
功能 标签0_点击()
命令("https://www.52pojie.cn/thread-1211387-1-1.html", 假)
结束
功能 按钮1_点击()
编辑框设置文本("编辑框0", "")
表格删除非固定行("表格0")
结束
功能 浏览框0_选择改变()
文件写配置("短视频无水印提取", "保存路径", 浏览框获取文本("浏览框0"), 系统获取进程路径() & "config.ini")
结束
=============================================
旧版存档
=============================================
版本 V2.3 (抖音 , 快手 , 微视)
日期: 2020年7月9日
功能改进: 修复 快手的解析BUG
增加 对数据的初步过滤检测,使用更稳定
蓝奏云 https://wws.lanzouj.com/idVeoeg2dvg
百度云 链接:https://pan.baidu.com/s/1FWmj1ebMiO6vDk-nUqgF2A 提取码:7xb6
--------------------------------
版本 V2.2 (抖音 , 快手 , 微视)
日期: 2020年7月7日
功能改进: 单视频的统一下载
--------------------------------
版本 V2.1 (抖音 , 快手 , 微视)
日期: 2020年7月4日
新增 腾讯微视短视频无水印解析, 修复上一个版本v2.0中 抖音的BUG
--------------------------------
版本V1.1 (抖音)
日期: 2020年7月2日
修复保存文件时,文件名为空,,导致保存失败的 BUG
=============================================
附录 / 友情提醒
=============================================
免费开源哦,,, 无病毒哦, 发现有问题了,可以通知一下我, 给大家免费长期使用.
友情提示: 原视频下载来后,一定要记得自己再加工处理一下,,,不要原视频就上传了
求大佬们给个热心值~
|