使用Python下载腾讯视频—仙逆第一集(50行代码搞定)
·
方法一:相对复杂,但能下载高清视频
1、获取相关数据(我使用的是谷歌双核浏览器)
获取ts文件下载地址
打开仙逆第一集,按F12进入开发者模式,点击左边的搜索

输入m3u8,点击搜索,会找到左侧相关的内容,点击第一个,在右边的Headers中能看到请求地址,从https://到.ts整段可以直接拷贝到浏览器打开进行下载,其实整个视频是由多个ts文件组成的

在这里,我们需要拿到ts文件下载地址
如图所示:

获取下载视频的代理地址和请求体
依然是搜索m3u8,这里需要找到有proxyhttp的内容,将Request URL的地址(https://vd6.l.qq.com/proxyhttp)记录下来,赋给Python脚本里面的video_url变量

往下面拉,找到Request Payload,点击view source,

默认不显示全部,点击Show more直到显示所有内容

整个内容就是请求体,格式为json

2、Python代码
import requests
import re
import os
from tqdm import tqdm # 显示进度条
import json
# 下载视频
def download_video(video_url, request_body, ts_url, video_path):
if os.path.exists(video_path):
raise ValueError(f"文件 {video_path} 已存在!")
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
response = requests.post(url=video_url, json=request_body, headers=headers)
html_data = response.json()['vinfo']
m3u8_url = re.findall('url(.*?),', html_data)[5].split('"')[2] # 查找https
m3u8_data = requests.get(url=m3u8_url).text
# 删除以#号开头的行
lines = m3u8_data.split('\n')
cleaned_lines = [line for line in lines if not line.startswith('#')]
m3u8_data = '\n'.join(cleaned_lines).split()
# 开始下载视频
print(f"begin download {video_path}...")
for ts_name in tqdm(m3u8_data):
download_url = ts_url + ts_name
ts_content = requests.get(url=download_url).content
with open(video_path, mode='ab') as f:
f.write(ts_content)
print(f"download {video_path} success")
if __name__ == '__main__':
try:
ts_url = input("输入ts文件下载地址:")
request_body = json.loads(input("输入请求体:"))
video_number = json.loads(input("剧集:"))
video_url = "https://vd6.l.qq.com/proxyhttp" # 下载视频的代理地址
output_dir = r"E:\学习\视频剪辑\仙逆\原视频"
video_name = f"仙逆第{video_number}集.mp4"
video_path = os.path.join(output_dir, video_name) # 下载视频保存路径
download_video(video_url, request_body, ts_url, video_path)
except Exception as e:
print('ERROR:%s' % e)
3、效果
由于pycharm控制台输入网址回车会跳转到浏览器,因此在DOS下执行python脚本

简直太酷了

方法二:去B站下载,相对简单, 但清晰度不高
pip3 install you-get -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
you-get -i 视频地址,可以查看清晰度

you-get 视频网页地址即可下载
you-get https://www.bilibili.com/video/BV1ai1TYhEHN/?spm_id_from=333.337.search-card.all.click

更多推荐

所有评论(0)