找回密码
  注册[Register]
查看: 508|回复: 12

[python] python下载抖音无水印视频

[复制链接]
发表于 2022-6-26 17:12 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

话不多说直接来上代码。


[Python] 纯文本查看 复制代码
import requests
import os
import re
import time
 
headers = {
    "User-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36"
}
api = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids="
 
 
# 创建目录
def createFolder(dirname):
    if os.path.exists(dirname):
        pass
    else:
        os.mkdir(dirname)
 
 
#
def get_url(content):
    url = re.search(r"[a-zA-z]+://[^\s]*", content).group(0)
    requestsApi(url)
 
 
# 获取真实地址 匹配aweme_id
def handleUrl(url):
    response = requests.get(url).url
    aweme_id = re.match(r".*video/(\d+)", response).group(1)
    return aweme_id
 
 
# 解析视频
def requestsApi(url):
    result = requests.get(api + handleUrl(url), headers=headers).json()
    vid = result["item_list"][0]["video"]["play_addr"]["uri"]
    video_name = result["item_list"][0]["desc"]
    video_api = "https://aweme.snssdk.com/aweme/v1/play/?video_id=" + vid + "&ratio=720p&line=0"
    start = time.time()
    video = requests.get(video_api, headers=headers, stream=True)
    size = 0  # 初始化已下载大小
    chunk_size = 1024  # 每次下载的数据大小
    content_size = int(video.headers['content-length'])
    try:
        if video.status_code == 200:
            print('开始下载,[视频大小]:{size:.2f} MB'.format(size=content_size / chunk_size / 1024))  # 开始下载,显示下载文件大小
            filename = os.path.join(folder_name, f"{video_name}" + ".mp4")
            with open(filename, "wb") as f:
                for data in video.iter_content(chunk_size=chunk_size):
                    f.write(data)
                    size += len(data)
                    print('\r' + '[下载进度] %s %.2f%%' % (
                        '▊' * int(size * 50 / content_size), float(size / content_size * 100)), end=' ')
        end = time.time()
        print('视频下载完成!, 完成时间: %.2f秒' % (end - start))  # 输出下载用时时间
    except Exception as ex:
        print("err: ", ex)
 
 
if __name__ == '__main__':
    folder_name = "video"
    createFolder(folder_name)
    get_url(input(
        "请输入抖音的分享链接!比如 (5.30 AtR:/ %%月光骑士  帅是很帅,就是有点废厕纸。  https://v.douyin.com/YxEqmuF/ 复制此链接,打开Dou音搜索,直接观看视频!)\n"))
    t = 5
    n = 0
    while n < t:
        n = n + 1
        time.sleep(1)
        print(f"{n}秒后关闭窗口!")
        if n == t:
            break

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2022-6-26 17:12 | 显示全部楼层

支持楼主,谢谢分享。
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-6-26 17:24 | 显示全部楼层
谢谢大牛
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-6-26 17:25 | 显示全部楼层
先收藏了,万一用到呢
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-6-26 17:27 | 显示全部楼层
谢谢分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-6-26 17:55 | 显示全部楼层
多谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-6-27 11:29 | 显示全部楼层
感谢楼主分享!大牛有你更精彩!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-7-3 09:34 | 显示全部楼层
感谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-7-3 09:44 | 显示全部楼层
谢谢分享!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-7-5 09:16 | 显示全部楼层
6666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|大牛论坛 |我的广告

GMT+8, 2024-5-4 08:18 , Processed in 0.049014 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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