自由开发者计划 003:创建一个短视频去水印下载的微信小程序

一. 背景

十多年的好友,龙哥,是一名国企管理人员,前端时间倾心于研究短视频平台创作。
如果每次素材完全都自己做,哼哧哼哧一个视频要弄3-4个小时。他做亲子互动题材,累了2个月,收获甚微。
他发现,抑或打听到一个快速涨粉养号的渠道,那就是可以搬运同类题材的视频到自己的号上,如果是热点内容,搬过来也是热点,并且这个是经过平台验证过的。
当然素材还挂着别人的水印肯定不行,有心了自己稍微剪辑一下,不想费心了修改下 md5 值也可以。
龙哥说了这个烦恼,这忙得帮。

二. 接口解析

1. 处理流程:

  1. 判断链接类型(电脑网页版或手机分享链接)

  2. 提取视频ID(短链接需处理重定向)

  3. 构造请求URL 获取HTML内容
    使用 httpx 库发起异步HTTP请求
    设置 follow_redirects=True 自动处理重定向
    使用伪装的User-Agent避免被反爬

    async with httpx.AsyncClient(follow_redirects=True) as client:
    response = await client.get(share_url, headers=self.get_default_headers())
    response.raise_for_status()
    
  4. 正则提取包含视频信息的JSON数据
    使用正则表达式搜索包含视频信息的JavaScript变量
    抖音将视频数据存在 window._ROUTER_DATA 变量中
    提取并解析JSON格式数据

    pattern = re.compile(
    pattern=r"window\._ROUTER_DATA\s*=\s*(.*?)</script>",
    flags=re.DOTALL,
    )
    find_res = pattern.search(response.text)
    json_data = json.loads(find_res.group(1).strip())
    
  5. 解析JSON获取视频信息和图集信息

    # 视频播放地址替换水印版本为无水印版本
    video_url = data["video"]["play_addr"]["url_list"][0].replace("playwm", "play")
    
    # 获取重定向后的最终MP4地址
    video_mp4_url = await self.get_video_redirect_url(video_url)
    

2. 核心技巧

  1. URL转换:将带水印URL转换为无水印URL,关键是把playwm替换为play
  2. 请求头伪装:使用fake_useragent生成随机User-Agent 重定向处理:使用httpx库处理短链接重定向获取真实视频ID
  3. 正则提取:使用正则表达式提取HTML中的JSON数据 数据处理:从JSON中提取无水印视频、封面、标题、作者信息等

三. 小程序功能设计

可以搜“轻影无损去水印”,目前已经上架,欢迎试用,有问题随时交流。
在这里插入图片描述

主页,能自动从剪切板粘贴,也能一键清空链接,同样支持自动解析分享链接。
在这里插入图片描述

解析结果页,漂亮!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值