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

爬取抖音无水印视频

程序员文章站 2022-04-11 19:01:19
...

目录

 

0. 需求分析

1. 实现思路

2.调用模块

3. 代码实现


0. 需求分析

 保存抖音视频总会出现跳动的标志和最后的结尾,显得有些多余,用户上传的视频中是没有这部分信息的,如何删除。

1. 实现思路

  1. 初次访问链接可得到当前视频唯一的标识码即video/*******/

  2. 得到该unique code后加上前缀得到视频链接
  3. 修改链接中参数, 将playwm替换为play得到无水印地址
  4. 无水印地址只能通过手机访问, 访问时头部信息改为ios或者Android
  5. 保存视频为二进制文件

2.调用模块

  • request
  • re
  • json

3. 代码实现

# Author    : CoffeeChicken
# Date      : 2020-12-04 13:16
# Function  : 演示 抖音去水印

import requests
import re
import json

# 抖音地址
url_list = ['https://v.douyin.com/JCbFdsJ/']
# 请求地址获取视频哈希码
for url in url_list:
	est1 = requests.get(url)
	uq = re.findall('video/(\d+)/', str(est1.url))[0]
	# print("哈希码: ",uq)
	# 得到哈希码后获取视频地址
	ur11 = f'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={uq}'
	est2 = requests.get(ur11).text
	js1 = json.loads(est2)
	# print("js1====>", js1)
	# 找到视频链接后将参数修改获得无水印地址
	url3 = str(js1['item_list'][0]['video']['play_addr']['url_list'][0]).replace('playwm', 'play')
	# print("url====>",url3)
	# 获得标题
	title = str(js1['item_list'][0]['desc'])
	print(title)
	# 无水印地址访问时需要用移动端头信息
	headers = {
	    'User-Agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko)'
	                  ' Chrome/66.0.3329.0 Mobile Safari/537.36'
	}
	# est=requests.get(url=url3,headers=headers).url
	# 发起请求获得无水印视频
	est = requests.get(url=url3, headers=headers)
	with open(f'{title}.mp4', 'wb') as f:
	    f.write(est.content)