抖音视频无水印解析下载工具,抖音无水印解析工具,短视频在线解析工具

简介: 可以无水印解析最新的抖音视频,还能把抖音视频无水印下载下来,效果还是非常不错的,一般我们下载的都是带水印的,但是这种的不会。

下载地址:https://www.pan38.com/share.php?code=pvvmX 提取码:7778

可以无水印解析最新的抖音视频,还能把抖音视频无水印下载下来,效果还是非常不错的,一般我们下载的都是带水印的,但是这种的不会。

源码部分:

.版本 2
.支持库 spec
.支持库 iext
.支持库 internet
.支持库 commobj
.支持库 shell
.支持库 HtmlView

.程序集 窗口程序集启动窗口, , , 本源码来自易语言资源网(www.eyuyan.la)
.程序集变量 集
解析视频, 整数型
.程序集变量 集下载视频, 整数型
.程序集变量 集
主页获取, 整数型

.子程序 _启动窗口创建完毕

.子程序 抖音取视频地址, 逻辑型, , 纯官方本地算法
.参数 链接或ID, 文本型, , 分享链接获取作品ID
.参数 抖音, 抖音视频, 参考 可空
.局部变量 第一次重定向, 文本型
.局部变量 第二次重定向, 文本型
.局部变量 json, 类_json
.局部变量 str, 文本型
.局部变量 itemid, 文本型

.如果 (寻找文本 (链接或ID, “/”, , 假) ≠ -1)
网页访问S (链接或ID, , , , , , , 真, , , , , , , 第一次重定向)
itemid = 文本
取出中间文本 (第一次重定向, “video/”, “/”, , )
.否则

itemid = 链接或ID

.如果结束

str = 编码utf8到gb2312 (网页访问S (“https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=” + itemid))
调试输出 (str)
json.解析 (str)
.如果真 (json.取通用属性 (“status_code”, ) ≠ “0”)
返回 (假)
.如果真结束
抖音.作者 = json.取通用属性 (“item_list[0].author.nickname”, )
抖音.标题 = json.取通用属性 (“item_list[0].desc”, )
抖音.封面 = json.取通用属性 (“item_list[0].video.cover.url_list[0]”, )
抖音.时长 = 到文本 (到整数 (到数值 (json.取通用属性 (“item_list[0].video.duration”, )) ÷ 1000))
抖音.点赞数 = json.取属性 (“['item_list'][0].statistics['digg_count']”).取数据文本 ()
抖音.评论数 = json.取属性 (“['item_list'][0].statistics['comment_count']”).取数据文本 ()
抖音.视频ID = json.取通用属性 (“['item_list'][0].statistics['aweme_id']”)
抖音.上传时间 = json.取属性 (“['item_list'][0]['createtime']”).取数据文本 ()
' 其实这个返回的json里有非常多的信息,例如视频音乐的一些信息、视频作者的一些信息,我这里没有详细提取而已
网页
访问S (子文本替换 (json.取通用属性 (“item_list[0].video.play_addr.url_list[0]”, ), “playwm”, “play”, , , 真), 1, , , , “user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36”, , 真, , , , , , , 第二次重定向)
抖音.直链 = 第二次重定向
返回 (真)

.子程序 按钮导入列表_被单击
.局部变量 文本数组, 文本型, , "0"
.局部变量 i, 整数型

文本数组 = 分割文本 (文本删除空行 (编辑框抖音链接.内容), #换行符, )
超级列表框1.全部删除 ()
.计次循环首 (取数组成员数 (文本数组), i)
超级列表框1.插入表项 (, , , , , )
超级列表框1.置标题 (超级列表框1.取表项数 () - 1, 0, 到文本 (超级列表框1.取表项数 ()))
超级列表框1.置标题 (超级列表框1.取表项数 () - 1, 1, 文本数组 [i])
.计次循环尾 ()

.子程序 子_解析视频
.局部变量 抖音, 抖音视频
.局部变量 i, 整数型
.局部变量 抖音链接, 文本型

.计次循环首 (超级列表框1.取表项数 (), i)
抖音链接 = 超级列表框1.取标题 (i - 1, 1)
.如果 (抖音取视频地址 (抖音链接, 抖音))
超级列表框1.置标题 (i - 1, 2, 文本删特殊字符 (抖音.作者))
超级列表框1.置标题 (i - 1, 3, 抖音.标题)
超级列表框1.置标题 (i - 1, 4, 抖音.封面)
超级列表框1.置标题 (i - 1, 5, 抖音.直链)
超级列表框1.置标题 (i - 1, 6, 抖音.时长)
超级列表框1.置标题 (i - 1, 7, 抖音.点赞数)
超级列表框1.置标题 (i - 1, 8, 抖音.评论数)
超级列表框1.置标题 (i - 1, 9, 抖音.视频ID)
超级列表框1.置标题 (i - 1, 10, 时间
时间戳转文本 (抖音.上传时间))
超级列表框1.现行选中项 = i - 1
超级列表框1.保证显示 (i - 1)
日志 (“[解析成功]” + 抖音链接)
.否则

    日志 (“【解析失败】” + 抖音链接)
.如果结束
系统_处理事件 ()

.计次循环尾 ()
按钮_开始解析.禁止 = 假

.子程序 日志, , , www.eyuyan.la
.参数 str, 文本型

编辑框日志.加入文本 (时间时间戳转文本 (时间_取现行时间戳 ()) + “==>>” + str + #换行符)

.子程序 超级列表框1左键单击表项

.如果真 (超级列表框1.现行选中项 ≥ 0)
图片框1.图片 = HTTP读文件 (超级列表框1.取标题 (超级列表框1.现行选中项, 4))
日志 (“视频标题:” + 超级列表框1.取标题 (超级列表框1.现行选中项, 3))
日志 (“视频链接:” + 超级列表框1.取标题 (超级列表框1.现行选中项, 5))
.如果真结束

.子程序 超级列表框1被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

网页_打开指定网址 (超级列表框1.取标题 (超级列表框1.现行选中项, 5))

.子程序 按钮开始解析_被单击

.如果 (超级列表框1.取表项数 () < 1)
信息框 (“你还没有导入抖音链接到列表框!!!”, 0, , )
.否则

按钮_开始解析.禁止 = 真
集_解析视频 = 线程_启动 (&子_解析视频)

.如果结束

.子程序 按钮停止_被单击

按钮开始解析.禁止 = 假
按钮
下载全部.禁止 = 假
按钮获取主页作品.禁止 = 假
线程
销毁 (集解析视频)
线程
销毁 (集下载视频)
线程
销毁 (集_主页获取)

.子程序 按钮下载全部_被单击

按钮下载全部.禁止 = 真
下载视频 = 线程启动 (&子下载视频)

.子程序 子_下载视频
.局部变量 抖音, 抖音视频
.局部变量 i, 整数型
.局部变量 下载结果, 逻辑型
.局部变量 文件路径, 文本型

日志 (“开始下载视频”)
.如果真 (目录是否存在 (取运行目录 () + “\抖音视频”) = 假)
创建目录 (取运行目录 () + “\抖音视频”)
.如果真结束
.计次循环首 (超级列表框1.取表项数 (), i)
抖音.原始链接 = 超级列表框1.取标题 (i - 1, 1)
抖音.作者 = 超级列表框1.取标题 (i - 1, 2)
抖音.标题 = 超级列表框1.取标题 (i - 1, 3)
抖音.封面 = 超级列表框1.取标题 (i - 1, 4)
抖音.直链 = 超级列表框1.取标题 (i - 1, 5)
抖音.时长 = 超级列表框1.取标题 (i - 1, 6)
抖音.点赞数 = 超级列表框1.取标题 (i - 1, 7)
抖音.评论数 = 超级列表框1.取标题 (i - 1, 8)
抖音.视频ID = 超级列表框1.取标题 (i - 1, 9)
抖音.上传时间 = 超级列表框1.取标题 (i - 1, 10)
超级列表框1.置标题 (i - 1, 11, “下载中”)
文件路径 = 取运行目录 () + “\抖音视频\” + 到文本 (取现行时间 ()) + 抖音.视频ID + “.mp4”
下载结果 = 写到文件 (文件路径, HTTP读文件 (抖音.直链))
.如果真 (下载结果 = 假)
下载结果 = 写到文件 (文件路径, HTTP读文件 (抖音.直链))
.如果真结束
.如果 (下载结果)
超级列表框1.置标题 (i - 1, 11, “OK”)
日志 (“下载成功” + 抖音.原始链接 + “保存路径:” + 文件路径)
.否则
超级列表框1.置标题 (i - 1, 11, “失败”)
日志 (“视频下载【失败】” + 抖音.原始链接)
.如果结束
系统
处理事件 ()
.计次循环尾 ()
日志 (“视频下载完毕”)
按钮_下载全部.禁止 = 假

.子程序 子_数据定义, 整数型
.参数 抖音, 抖音视频, 数组
.局部变量 单抖音, 抖音视频
.局部变量 i

清除数组 (抖音)
.计次循环首 (超级列表框1.取表项数 (), i)
单抖音.原始链接 = 超级列表框1.取标题 (i - 1, 2)
单抖音.标题 = 超级列表框1.取标题 (i - 1, 3)
单抖音.封面 = 超级列表框1.取标题 (i - 1, 4)
单抖音.直链 = 超级列表框1.取标题 (i - 1, 5)
单抖音.时长 = 超级列表框1.取标题 (i - 1, 6)
单抖音.点赞数 = 超级列表框1.取标题 (i - 1, 7)
单抖音.评论数 = 超级列表框1.取标题 (i - 1, 8)
单抖音.视频ID = 超级列表框1.取标题 (i - 1, 9)
单抖音.上传时间 = 超级列表框1.取标题 (i - 1, 10)
加入成员 (抖音, 单抖音)
系统_处理事件 ()
.计次循环尾 ()
返回 (取数组成员数 (抖音))

.子程序 按钮导出列表数据_被单击
.局部变量 i, 整数型
.局部变量 快速文本, 快速文本对象
.局部变量 文本, 文本型
.局部变量 路径, 文本型

快速文本.清除文本 ()
.计次循环首 (超级列表框1.取表项数 (), i)
快速文本.添加 (超级列表框1.取标题 (i - 1, 1), “----”)
快速文本.添加 (超级列表框1.取标题 (i - 1, 2), “----”)
快速文本.添加 (超级列表框1.取标题 (i - 1, 3), “----”)
快速文本.添加 (超级列表框1.取标题 (i - 1, 4), “----”)
快速文本.添加 (超级列表框1.取标题 (i - 1, 5), “----”)
快速文本.添加 (超级列表框1.取标题 (i - 1, 6), “----”)
快速文本.添加 (超级列表框1.取标题 (i - 1, 7), “----”)
快速文本.添加 (超级列表框1.取标题 (i - 1, 8), “----”)
快速文本.添加 (超级列表框1.取标题 (i - 1, 9), “----”)
快速文本.添加 (超级列表框1.取标题 (i - 1, 10), #换行符)
.计次循环尾 ()
文本 = 快速文本.取文本 (, )
.如果真 (文本 ≠ “”)
路径 = 取特定目录 (#系统桌面) + “\抖音视频数据” + 到文本 (取现行时间 ()) + “.txt”
.如果 (写到文件 (路径, 到字节集 (文本)))
执行 (#打开文件, 路径, , , )
.否则

    信息框 (“导出失败” + 路径, 0, , )
.如果结束

.如果真结束

.子程序 按钮获取主页作品_被单击

日志 (“主页获取作品大概需要获取10多次才能获取到。”)
按钮获取主页作品.禁止 = 真
主页获取 = 线程启动 (&子主页获取作品)

.子程序 子_主页获取作品, , , 最多可以获取主页20个作品
.局部变量 i, 整数型
.局部变量 主页链接, 文本型
.局部变量 填表, 普通填表
.局部变量 源码, 文本型
.局部变量 最新作品id, 文本型
.局部变量 文件名, 文本型
.局部变量 计次, 整数型
.局部变量 作者id, 文本型
.局部变量 分割, 文本型, , "0"
.局部变量 sy, 整数型
.局部变量 抖音主页, 抖音主页
.局部变量 作品数, 整数型
.局部变量 作品数组, 文本型, , "0"
.局部变量 抖音, 抖音视频

主页链接 = 编辑框主页链接.内容
.计次循环首 (20, 计次)
超文本浏览框1.静默 = 真
超文本浏览框1.跳转 (主页链接, , )
程序
延时 (1000)
填表.初始化 (超文本浏览框1.取窗口句柄 ())
源码 = 填表.网页取源码 ()
.如果 (寻找文本 (源码, “>作品<”, , 假) ≠ -1)
作品数 = 到整数 (文本
取出中间文本 (源码, “>作品”, “<”))
.如果 (作品数 > 0)
.如果 (寻找文本 (源码, “item goWork” + #引号 + “ data-id=” + #引号, , 假) ≠ -1)
正则_匹配批量 (源码, 抖音主页)
调试输出 (“item goWork”)
跳出循环 ()
.否则
日志 (“作品数量” + 到文本 (作品数) + “个,第” + 到文本 (计次) + “次加载作品失败 重试中”)
.如果结束

    .否则

        正则_匹配批量 (源码, 抖音主页)
        跳出循环 ()
    .如果结束

.否则

    日志 (“第” + 到文本 (计次) + “次加载失败 重试中”)
.如果结束
程序_延时 (500)
.如果真 (计次 = 20)
    调试输出 (“20次打开失败 跳过本号”)
.如果真结束

.计次循环尾 ()

超级列表框1.全部删除 ()
.如果真 (抖音主页.作品ID ≠ “”)
作品数组 = 分割文本 (抖音主页.作品ID, “,”, )
.计次循环首 (取数组成员数 (作品数组), i)
.如果 (抖音取视频地址 (作品数组 [i], 抖音))
超级列表框1.插入表项 (, , , , , )
超级列表框1.置标题 (i - 1, 0, 到文本 (超级列表框1.取表项数 ()))
超级列表框1.置标题 (i - 1, 2, 文本删特殊字符 (抖音.作者))
超级列表框1.置标题 (i - 1, 3, 抖音.标题)
超级列表框1.置标题 (i - 1, 4, 抖音.封面)
超级列表框1.置标题 (i - 1, 5, 抖音.直链)
超级列表框1.置标题 (i - 1, 6, 抖音.时长)
超级列表框1.置标题 (i - 1, 7, 抖音.点赞数)
超级列表框1.置标题 (i - 1, 8, 抖音.评论数)
超级列表框1.置标题 (i - 1, 9, 抖音.视频ID)
超级列表框1.置标题 (i - 1, 10, 时间
时间戳转文本 (抖音.上传时间))
超级列表框1.现行选中项 = i - 1
超级列表框1.保证显示 (i - 1)
日志 (“[解析成功]” + 作品数组 [i])
.否则

        日志 (“【解析失败】” + 作品数组 [i])
    .如果结束

.计次循环尾 ()

.如果真结束
按钮_获取主页作品.禁止 = 假

.子程序 正则匹配批量, 整数型, , 本子程序采用【精易编程助手】生成。成功返回匹配的数量,失败返回0。
.参数 源文本, 文本型, , 欲被匹配的文本
.参数 抖音主页, 抖音主页, 参考
.局部变量 局
正则, 正则表达式类, , , 此类为精易模块里面的正则类,精易模块下载地址:http://ec.125.la/
.局部变量 局匹配数, 整数型
.局部变量 局
计次, 整数型
.局部变量 局_子匹配数, 整数型
.局部变量 i, 整数型

.如果真 (局正则.创建 (“<(?:p|li|img|span) class=.(?!te?xt|logo|digg)[^.>]+(?:(?:src|data-id)=.([^\x22]+)|>(?!\s)([^<]+)\s*<)”, 源文本, 假, 假, 真, 真) = 假)
信息框 (“正则创建失败,请检查正则表达式语句是否有误!”, #错误图标, , )
返回 (0)
.如果真结束
匹配数 = 局正则.取匹配数量 ()
.如果真 (局
匹配数 = 0)
信息框 (“匹配失败,请检检查正则语句是否有误,数量:0”, #错误图标, , )
返回 (0)
.如果真结束
子匹配数 = 局正则.取子匹配数量 ()
.计次循环首 (局匹配数, 局计次)
.判断开始 (局计次 = 1)
抖音主页.头像地址 = 局
正则.取子匹配文本 (局计次, 1, )
.判断 (局
计次 = 2)
抖音主页.作者ID = 局正则.取子匹配文本 (局计次, 1, )
.判断 (局计次 = 3)
抖音主页.昵称 = 文本
删特殊字符 (局正则.取子匹配文本 (局计次, 2, ))
.判断 (局计次 = 4)
抖音主页.抖音号 = 删全部空 (文本
取右边 (局正则.取子匹配文本 (局计次, 2, ), “抖音ID:”))
.判断 (局计次 = 5)
抖音主页.简介 = 局
正则.取子匹配文本 (局计次, 2, )
.判断 (局
计次 = 6)
抖音主页.关注数 = 局正则.取子匹配文本 (局计次, 2, )
.判断 (局计次 = 7)
抖音主页.粉丝数 = 局
正则.取子匹配文本 (局计次, 2, )
.判断 (局
计次 = 8)
抖音主页.被赞数 = 局正则.取子匹配文本 (局计次, 2, )
.判断 (局计次 = 9)
抖音主页.作品数 = 局
正则.取子匹配文本 (局计次, 2, )
.判断 (局
计次 = 10)
抖音主页.喜欢数 = 局正则.取子匹配文本 (局计次, 2, )
.默认

    抖音主页.作品ID = 抖音主页.作品ID + 局_正则.取子匹配文本 (局_计次, 1, ) + “,”
.判断结束

.如果 (局_子匹配数 > 0)
    输出调试文本 (“匹配文本 ” + 到文本 (局_计次) + “ 中的子匹配文本 1:” + 局_正则.取子匹配文本 (局_计次, 1, ) + “----” + 局_正则.取子匹配文本 (局_计次, 2, ))
.否则
    输出调试文本 (“匹配文本 ” + 到文本 (局_计次) + “ :” + 局_正则.取匹配文本 (局_计次, ))
.如果结束

.计次循环尾 ()
返回 (局_匹配数)

.子程序 按钮下载选中视频_被单击
.局部变量 视频地址, 文本型
.局部变量 视频id, 文本型
.局部变量 下载结果, 逻辑型
.局部变量 文件路径, 文本型

.如果真 (目录_是否存在 (取运行目录 () + “\抖音视频”) = 假)
创建目录 (取运行目录 () + “\抖音视频”)
.如果真结束
视频地址 = 超级列表框1.取标题 (超级列表框1.现行选中项, 5)
视频id = 超级列表框1.取标题 (超级列表框1.现行选中项, 9)
.如果 (视频地址 ≠ “”)
文件路径 = 取运行目录 () + “\抖音视频\” + 到文本 (取现行时间 ()) + 视频id + “.mp4”
下载结果 = 写到文件 (文件路径, HTTP读文件 (视频地址))
.如果真 (下载结果 = 假)
下载结果 = 写到文件 (文件路径, HTTP读文件 (视频地址))
.如果真结束
.如果 (下载结果)
日志 (“下载成功” + “保存路径:” + 文件路径)
.否则

    日志 (“视频下载【失败】”)
.如果结束

.否则
日志 (“没有选中列表框中的数据”)
.如果结束

.子程序 文本删特殊字符, 文本型
.参数 原文本, 文本型
.局部变量 局
正则, 正则表达式类

正则.创建 (“([^\w\一-\龥\s\r\n]+)”, 原文本, 真)
返回 (删全部空 (局
正则.替换 (“”)))

相关文章
|
5月前
|
PHP 数据安全/隐私保护
抖音快手无水印解析下载视频工具,最新PHP版,仅供学习参考
可无水印解析下载抖音和快手的无水印短视频,也就是你下载的视频是没有水印的知道吧。
|
JavaScript 前端开发 小程序
js 实现浏览器下载视频2种方法
js 实现浏览器下载视频2种方法
1824 0
|
前端开发 JavaScript CDN
【开源组件】- 表格处理 - Luckysheet
使用Luckysheet实现前端从服务器中获取excel文件,通过luckysheet插件在线编辑,完成后将此文件传送到服务器保存。
2181 0
【开源组件】- 表格处理 - Luckysheet
|
小程序 数据安全/隐私保护 开发者
【已解决】开发者扫码登录提示“需要验证小程序密码”
开发者扫码登录提示“需要验证小程序密码”
1068 0
【已解决】开发者扫码登录提示“需要验证小程序密码”
|
5月前
|
安全 Ubuntu Linux
硬盘格式化用什么工具好?这6个工具值得了解一下
本文介绍了硬盘格式化的重要性及注意事项,并推荐了几款主流平台下的实用格式化工具,包括Windows磁盘管理器、文件资源管理器、DiskGenius、Diskpart命令行、Mac Disk Utility以及Linux的GParted,帮助用户安全高效地完成格式化操作。
|
5月前
|
Web App开发 JSON API
小红书无水印视频提取工具,解析快手抖音西瓜哔哩,易语言框架版
这个框架其实是我很早之前就开发的,但是今天我试了一下发现还能正常跑通,自己留着也浪费了,因为前期我开发的时候大概花费了10天左右,废了很大的心血,感觉分享出来。
|
5月前
|
搜索推荐 数据挖掘 计算机视觉
小红书视频图文提取:采集+CV的实战手记
这是一套用于自动抓取小红书热门视频内容的工具脚本,支持通过关键词搜索提取前3名视频的封面图、视频文件及基本信息(标题、作者、发布时间)。适用于品牌营销分析、热点追踪或图像处理等场景。脚本包含代理配置、接口调用和文件下载功能,并提供扩展建议如图像识别与情绪分析。适合需要高效采集小红书数据的团队或个人使用,稳定性和灵活性兼备。
378 4
|
JavaScript Java C++
ArkTS揭秘:如何在无‘类’的世界里,用组件与对象构建HarmonyOS应用的奇妙桥梁?
【10月更文挑战第19天】在鸿蒙系统的ArkTS开发中,类和对象的概念类似于传统OOP语言,但融入了声明式UI的特性。本文通过对比Java中的类和对象,详细介绍了如何在ArkTS中定义组件和实例化组件,并展示了实际开发中的应用示例。通过示例代码,读者可以清晰地理解ArkTS中类和对象的模拟方式及其灵活性。
488 1
|
JavaScript Windows
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 1x.x
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 1x.x
617 0