欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

抖音视频无水印下载python3版本

程序员文章站 2022-04-11 15:48:50
...

说明

  使用python3版本
  在*unx下测试通过
  输入短链获取无水印的抖音视频链接,实测真实可用

代码

# -*- coding: utf-8 -*-
import requests
import re
from urllib.parse import urlparse
import json


def get_origin_url():
    print("===>请输入抖音链接中的短链接(eg:https://v.douyin.com/sLvq6P/<===")
    url = input("===>:::")
# 获取页面代码
    headers = {
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
    'pragma': 'no-cache',
    'cache-control': 'no-cache',
    'upgrade-insecure-requests': '1',
    "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"
    }
    res = requests.get(url, headers=headers, timeout=3000)
    if res.url:
    	#短链跳转地址
        fmt_url = urlparse(res.url)
        print("格式化后的URL:%s" % fmt_url.path)
        pattern = re.compile(r"(/[0-9]+/)")
        item_ids = pattern.search(fmt_url.path)
        if item_ids:
        	#水印视频获取地址
            r_url=r'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=%s' % item_ids[1].strip('/')
            print("真实请求URL: %s" % r_url)
            r_context = requests.get(r_url, headers=headers, timeout=3000)
            #视频相关数据
            data = {}
            data = r_context.json()["item_list"][0]["video"]

            #获取带水印地址列表
            wm_url = data['play_addr']['url_list']
            if wm_url:
                url_query = urlparse(wm_url[0])
                if url_query.query:
                	#无水印地址
                    o_url="https://aweme.snssdk.com/aweme/v1/play/?%s" % url_query.query
                    print("真实下载地址: %s " % o_url)
        return o_url

if __name__ == '__main__':
    get_origin_url()