python语言kuaishou视频爬虫程序代码
import requestsimport osimport subprocess#测试url=https://v4-vod.kwaicdn.com/ksc2/enoEAhrbQbl8tmKkee8N3bh7Wq9hfMLEcZyTsk1oeFbqWoZ4guD6hiSXVu9aq4wg6UF2MWHNfOwYshnbbrqKSw.00007.ts?pkey=AAXRKFFVrav0a56Oh_x
import requests
import os
import subprocess
#测试url=https://v4-vod.kwaicdn.com/ksc2/enoEAhrbQbl8tmKkee8N3bh7Wq9hfMLEcZyTsk1oeFbqWoZ4guD6hiSXVu9aq4wg6UF2MWHNfOwYshnbbrqKSw.00007.ts?pkey=AAXRKFFVrav0a56Oh_x6fiJ7KWFbugkMXg4i0si-aT7qireV9ZBNxm065gW-Fi1iBMCrBwhYFFrwe6_2sp2fa-gp-kHEIjpDKb05DxBCnYuhdiAMX2OsCGFMMRbN83hZLF4&ftt=R
base_url = “https://v4-vod.kwaicdn.com/ksc2/enoEAhrbQbl8tmKkee8N3bh7Wq9hfMLEcZyTsk1oeFbqWoZ4guD6hiSXVu9aq4wg6UF2MWHNfOwYshnbbrqKSw.”
pkey = “AAXRKFFVrav0a56Oh_x6fiJ7KWFbugkMXg4i0si-aT7qireV9ZBNxm065gW-Fi1iBMCrBwhYFFrwe6_2sp2fa-gp-kHEIjpDKb05DxBCnYuhdiAMX2OsCGFMMRbN83hZLF4&ftt=R”
##https://v4-vod.kwaicdn.com/ksc2/zVfj16-r-pujiSuLtCPqvlL1yrFGrk10iQ5ZkTO66yUNS6k4ckkJurOTdPmtmqz8DJtonfHErPtwMIsylm78lA.00018.ts?pkey=AAUC0XfbIiV_uI6bYemEJgwGMMlJqKfxpCrMECTBzKrrAiNs19KWJvo2NCi2pHPjf21PDrLPf0btCRDuact0PfXUxgE7JEUFlcCncvnFn3fy5x01P6X9xAQg1-2H4YJc8kk&ftt=R
定义基础的URL、pkey等信息
base_url = “https://v4-vod.kwaicdn.com/ksc2/zVfj16-r-pujiSuLtCPqvlL1yrFGrk10iQ5ZkTO66yUNS6k4ckkJurOTdPmtmqz8DJtonfHErPtwMIsylm78lA.”
pkey = “AAUC0XfbIiV_uI6bYemEJgwGMMlJqKfxpCrMECTBzKrrAiNs19KWJvo2NCi2pHPjf21PDrLPf0btCRDuact0PfXUxgE7JEUFlcCncvnFn3fy5x01P6X9xAQg1-2H4YJc8kk&ftt=R”
创建一个文件夹用于存放视频片段,取名为"video_segments"
if not os.path.exists(“pd”):
os.mkdir(“pd”)
初始化片段编号
segment_number = “00000”
用于记录找到的最大片段编号
max_segment_number = None
while True:
url = f"{base_url}{segment_number}.ts?pkey={pkey}"
response = requests.get(url)
if response.status_code == 200:
# 如果片段存在,保存到文件夹并更新最大片段编号
file_path = os.path.join(“pd”, f"video_{segment_number}.ts")
with open(file_path, “wb”) as f:
f.write(response.content)
max_segment_number = segment_number
print(f"视频片段 {max_segment_number} 下载成功")
else:
# 如果片段不存在,跳出循环
break
# 递增片段编号,确保格式为5位数字
segment_number = f"{int(segment_number):05d}"
segment_number = f"{int(segment_number)+1:05d}"
if max_segment_number is not None:
# 创建用于FFmpeg合并的输入文件列表(采用文本文件方式)
video_segments_folder = “C:\Users\Administrator\PycharmProjects\pythonPaChong\pd”
input_file_path = os.path.join(video_segments_folder, “input.txt”)
with open(input_file_path, “w”) as f:
for root, dirs, files in os.walk(video_segments_folder):
for file in files:
if file.endswith(“.ts”):
file_path = os.path.join(root, file).replace(“\”, “/”) # 确保路径格式为正斜杠格式,符合多数FFmpeg使用场景
f.write(f"file ‘{file_path}’\n")
# 定义FFmpeg命令,使用 -f concat结合文本文件方式来合并视频片段
ffmpeg_command = f'ffmpeg -f concat -safe 0 -i {input_file_path} -c copy 天使的翅膀.mp4'
# 使用subprocess模块调用命令行执行FFmpeg命令
subprocess.call(ffmpeg_command, shell=True)
print("视频合并完成!")
else:
print(“未找到任何视频片段。”)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)