精易论坛

标题: 【菜鸟八哥】某音无水印解析教程(非调用接口) [打印本页]

作者: 菜鸟八哥    时间: 2025-3-12 11:42
标题: 【菜鸟八哥】某音无水印解析教程(非调用接口)
因为鄙人最近在开发一个直播短视频APP,需要用到视频采集解析的功能,所以研究了一下某音的无水印解析,截至2025年3月12日发帖日,可用
首先准备一个抖音的分享的连接,例如:https://v.douyin.com/i5gQ1DVa/
然后要携带手机UA头访问这个地址

访问需要禁止重定向,然后响应头里,有一个重定向地址
https://www.iesdouyin.com/share/video/7410058646459075840/?region=CN&mid=741005....省略


然后带着相同的UA头请求这个重定向地址(其实只要带UA头了,不禁止重定向也可以,这里详细的解说原理)
重点:必须带手机UA头请求,否则获取的页面源码是加密的

好了,第二步就是访问这个重定向地址(要带相同的UA头),获取其页面源码

页面源码中,有一个sscript标签,里面存放的一个json数组,这个json数组中就已经包含了该作品的全部信息了,需要取出这个json数据做解析

找到loaderData['video_(id)/page'].videoInfoRes['item_list'][0].video['play_addr']['url_list'][0]这个字段


它的值就是视频的播放地址,例如:https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0300fg10000crasu87og65iu2l6hoh0&ratio=720p&line=0
不过这个视频是带水印的,这个时候,将url连接中的playwm换成play,就是不带水印的地址了
这也是一个重定向地址,通常可以正常访问的,如果你的播放器不支持播放重定向地址


可以访问访问这个播放地址,然后禁止重定向,获取响应头中的Location地址,就是最终的播放地址了,包行的啊


另外,我感觉最近论坛活跃度都好低啊,源码区也水的很



作者: stft    时间: 2025-3-12 14:32
谢谢分享
作者: 七颗心    时间: 2025-3-12 18:40

作者: 风景好靓    时间: 2025-3-13 10:09
看不懂,感谢分享
作者: q2356364305    时间: 2025-3-13 16:37

作者: xiaofanvv    时间: 2025-3-20 09:33

作者: apswwx    时间: 2025-3-25 15:08
测试成功了
作者: renhe2018    时间: 2025-4-3 10:25
分析得非常到位。给力。
作者: benyu168    时间: 2025-4-11 20:12
感谢分享
作者: 涤尘    时间: 2025-4-17 20:26
谢谢分享,学习一下
作者: 羽毛呀    时间: 2025-4-22 23:46
嗯可以加一段
局_返回 = 子文本替换 (局_返回, “720p”, “1080p”, , , 真)

作者: 羽毛呀    时间: 2025-4-23 02:02
羽毛呀 发表于 2025-4-22 23:46
嗯可以加一段
局_返回 = 子文本替换 (局_返回, “720p”, “1080p”, , , 真)

放弃了

用了另外一种
cookies得用自己的去扒一下就好了
.版本 2
.支持库 spec

.局部变量 源代码, 文本型
.局部变量 JSON, 类_json
.局部变量 局_正则, 正则表达式类
.局部变量 链接, 文本型

' 提取网址
局_正则.创建 (“[a-zA-z]+://[^\s]*”, 编辑框_原链接.内容, 假, 假, 真, 真)

' 获取抖音ID
源代码 = 到文本 (网页_访问 (局_正则.取匹配文本 (1, ), 0, , , , “User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36”, , 真, , , , , , ))
源代码 = 文本_取出中间文本 (源代码, “video/”, “/”, , )

' 获取视频信息
源代码 = 到文本 (网页_访问 (“https://www.douyin.com/user/self?modal_id=” + 源代码 + “&showTab=like”, 0, , 编辑框_Cookie.内容, , “User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36”, , 真, , , , , , ))

源代码 = 文本_取出中间文本 (源代码, “<script id=” + #引号 + “RENDER_DATA” + #引号 + “ type=” + #引号 + “application/json” + #引号 + “>”, “</script>”, , )
源代码 = 编码_URL解码 (源代码, 真)

' 把json写到文本,之后去找对应的内容
' 写到文件 (“D:\iTJiN\Desktop\已解析视频\1.txt”, 到字节集 (源代码))

JSON.解析 (源代码, , )

' 无水印直链
链接 = JSON.取通用属性 (“app.videoDetail.video.playAddr[0].src”, )' 这个链接直接下载不了
链接 = 子文本替换 (链接, “web.douyinvod.com”, “dy.ixigua.com”, , , 真)' 替换一下就好了
' 背景音乐
调试输出 (“音乐:” + JSON.取通用属性 (“app.videoDetail.music.playUrl.uri”, ))

' 封面图
调试输出 (“封面:” + JSON.取通用属性 (“app.videoDetail.video.originCover”, ))

编辑框_结果.内容 = “直链:” + #换行符 + 链接 + #换行符 + “音乐:” + JSON.取通用属性 (“app.videoDetail.music.playUrl.uri”, ) + #换行符 + “封面:” + JSON.取通用属性 (“app.videoDetail.video.originCover”, )

作者: guyuelintian    时间: 7 天前
谢谢分享,学习一下




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4