吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 10046|回复: 73
上一主题 下一主题
收起左侧

[Python] 【原创源码】【python】下载抖音无水印视频

  [复制链接]
跳转到指定楼层
楼主
Quincy_007 发表于 2020-3-2 17:33 回帖奖励
首先声明该方法仅供个人使用,严禁非法获利。
1.一般我们保存抖音视频,下载保存打开后视频上是有水印的,如下图:

视频中会有水印,虽然网上也有各自去水印的方法,但是都是基于视频图像处理进行的,下面介绍的方法是从源头直接获取无水印视频下载链接。

2.首先我们在抖音分享里面,复制视频链接,例如:#在抖音,记录美好生活#我今年38,身高180,从来不洗澡,家里有八套房子,里面只有一件事情是真的,你猜是哪一件#twice问号舞 https://v.douyin.com/tPPT11/ 复制此链接,打开【抖音短视频】,直接观看视频!

3.以这个视频为例,复制这段内容里面的url链接:https://v.douyin.com/tPPT11/,可以看出来抖音视频都是以短链接的方式进行外链分享,我们把这个短链接用Chrome浏览器打开【注意】浏览器用F12开发者模式中,改为移动设备,如图:

4.在开发者工具中过滤item,可以看到request请求url为:https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6799201381799513359&dytk=cd3d594ff02fe56fca2568f82d659b939942bf444f1a974247d6bb6f526a2995
可以看出这里面每个视频的实际播放url的组成格式都是这样的,那么接下来就是要找到每个视频的item_ids和dykt。


5.我们继续看过滤前的报文,里面有个document的报文,这里面就是我们打开短链接时获取的一个页面。里面包含了我们所需要的item_ids和dykt。


6.OK通过上面操作我们已经获取到一个短视频的长链接所以要的2个参数,下面就是需要进行组装url,我们先打开url看看内容是什么。这其实就是一个Http请求,我们直接看回复的内容:


7.可以看到返回了多个addr。其中download_addr,下面标注了has_watermark:true,这是我们平常保存时候带水印的视频链接。
继续往下看,有一个play_addr,这个就是我们要找的无水印视频链接,复制到手机浏览器里打开,OK没有水印,大功告成!对比一下同一个时间点的视频截图:


最后附上python代码:
[Python] 纯文本查看 复制代码
# Chrome用开发者模拟移动设备打开短链接  https://v.douyin.com/sLvq6P/
# 过滤item_ids字段和dytk字段,组装视频播放url
# 打开里面的play_addr,即可得到无水印视频播放地址,复制url到手机浏览器打开即得无水印视频

#视频播放长链接组装规则
# "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?
#     item_ids="+item_ids[0]+"&dytk="+dytk[0]

import requests
import re

#设置浏览器代{过}{滤}理,一定要是移动设备,安卓/iOS均可
headers = {
"user-agent": "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"
}

print("===>欢迎使用抖音视频去水印提取工具")
print("===>请输入抖音链接中的短链接(eg:https://v.douyin.com/sLvq6P/)")
input_url = input("===>")
#根据粘贴的分享内容,提取视频短链接
preurl = re.findall(r'(?<=douyin.com\/)\w+\/', input_url, re.I|re.M)

# print("https://v.douyin.com/"+preurl[0])
#组装短链接url
url = "https://v.douyin.com/"+preurl[0]

#请求短链接,获得itemId和dytk
get = requests.get(url, headers=headers)
html = get.content
# print(html)
itemId = re.findall(r"(?<=itemId:\s\")\d+", str(html))
# print(itemId[0])
dytk = re.findall(r"(?<=dytk:\s\")(.*?)(?=\")", str(html))
# print(dytk[0])

#组装视频长链接
videourl = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?\
item_ids="+itemId[0]+"&dytk="+dytk[0]
# print(videourl)

#请求长链接,获取play_addr
videoopen = requests.get(videourl, headers=headers)
vhtml = videoopen.text
# print(vhtml)
uri = re.findall(r'(?<=\"uri\":\")\w{32}(?=\")', str(vhtml))
# print(uri[0])

#长链接的格式其实是固定的,唯一变动的就是video_id,上面提取出uri后进行组装即可得到最终链接
play_addr = "https://aweme.snssdk.com/aweme/v1/play/?video_id="+uri[0]+\
            "&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_PUBLISH"
print("===>复制下面的长链接到手机浏览器打开即可得到无水印视频\n===>"+play_addr)

#自定义文件名保存短视频
name = input("===>正在下载保存视频,请输入视频名称:")
video = requests.get(url=play_addr, headers=headers)
with open(name+".mp4", 'wb')as file:
    file.write(video.content)
    file.close()
    print("===>视频下载完成!")

#完事后退出程序
input("===>press enter key to exit!")







实际运行一下,OK!

新人首次发帖,如有错误之处请大佬指正!

免费评分

参与人数 24吾爱币 +23 热心值 +23 收起 理由
寻常巷陌 + 1 + 1 热心回复!
skuld + 1 + 1 用心讨论,共获提升!
墨芜 + 1 + 1 谢谢@Thanks!
致远英才 + 1 + 1 谢谢@Thanks!
geniusrot + 1 + 1 等我学会易语言了,再回来越l学py
w5211 + 1 + 1 谢谢@Thanks!
泽哥 + 1 + 1 用心讨论,共获提升!
lapumengde + 1 + 1 用心讨论,共获提升!
qs1120 + 1 楼主很美
buyu + 1 用心讨论,共获提升!
小姐姐退下吧 + 1 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
一叶青 + 1 + 1 用心讨论,共获提升!
okface + 1 + 1 我很赞同!
RainerY + 1 + 1 我很赞同!
1ceberg9 + 1 + 1 用心讨论,共获提升!
woshiapple + 1 + 1 用心讨论,共获提升!
RoyWang + 1 + 1 我很赞同!
asd117118 + 1 + 1 我很赞同!
david1989 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
a5582323 + 1 + 1 用心讨论,共获提升!
封羽 + 1 + 1 回来给分了,绝对牛逼!!!!赞赞赞
Dreamll + 1 + 1 用心讨论,共获提升!
taylorSZ22 + 1 + 1 谢谢楼主,思路偷了
kefeimao + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| Quincy_007 发表于 2020-3-3 13:32 |楼主
fengxs420 发表于 2020-3-3 09:35
楼主出一个可运行文件吧,代码的实在麻烦


这是刚刚运行的结果,下面是从抖音直接复制的链接。
#在抖音,记录美好生活#白丝可爱嘛#jk制服 https://v.douyin.com/tQqWh1/ 复制此链接,打开【抖音短视频】,直接观看视频!我打包成可执行文件了,放到网盘大家自取测试,我的系统是win10 64位。[size=17.0667px]链接: https://pan.baidu.com/s/1NtA6_mgVslGdzQ-GBUXpdA[size=17.0667px] 提取码: rrxi

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
再见吧小二 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

推荐
 楼主| Quincy_007 发表于 2020-3-3 20:11 |楼主
david1989 发表于 2020-3-3 19:59
代码测试没问题,有一个问题 ,代码运行请输入分享的全部内容,单独https地址回跳转至网页 ,无法下一步  ...

这个是python的一个bug,准确说是pycharm的一个bug,如果仅仅是url,回车会自动调用浏览器打开,可以在粘贴完url后追加一个空格再回车执行即可,望采纳。
推荐
封羽 发表于 2020-3-3 09:35
沙发
webtran 发表于 2020-3-3 00:07
感谢分享,可惜不会用
4#
kilenigma 发表于 2020-3-3 10:01
讲解的好详细,太厉害了!
5#
cncik 发表于 2020-3-3 10:19
感谢分享哈
6#
lendes 发表于 2020-3-3 11:40
是不是已经用不了了了   网址访问后无play_addr
7#
 楼主| Quincy_007 发表于 2020-3-3 11:46 |楼主
lendes 发表于 2020-3-3 11:40
是不是已经用不了了了   网址访问后无play_addr

可以用,我这就是昨天才重新运行测试的。
8#
sebu 发表于 2020-3-3 11:59
不行,没用
9#
a5582323 发表于 2020-3-3 12:00
代码写的好,头像也好看
10#
 楼主| Quincy_007 发表于 2020-3-3 13:10 |楼主

请问您试过了吗就说没用?是哪一步有问题,咱们报错拿出来看好吗?我这是昨天下午写的和运行的结果。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2021-7-29 11:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表