批量获取API接口视频类并下载 带MD5校验去重(Python)

简介

此款脚本适用于访问API直接返回视频的网站, 如api接口返回的为json格式,可联系站长进行改写

批量获取API接口视频类并下载 带MD5校验去重(Python)插图

import requests
import os
from tqdm import tqdm
import hashlib

url = "https://v1.21lhz.cn/API/Video/api.php"
save_path = "/home/video/"

def download_videos(url, save_path, reset_times):
    if not os.path.exists(save_path):
        os.makedirs(save_path)
    
    for i in range(reset_times):
        response = requests.get(url, stream=True)
        
        if response.status_code == 200:
            total_size = int(response.headers.get('Content-Length', 0))
            video_name = f"video_{i+1}.mp4"  # 根据实际情况给视频命名
            video_path = os.path.join(save_path, video_name)
            
            with open(video_path, "wb") as f, tqdm(
                    total=total_size, unit='B', unit_scale=True, desc=f"下载 {video_name}"
            ) as pbar:
                for chunk in response.iter_content(chunk_size=1024):
                    size = f.write(chunk)
                    pbar.update(size)
            
            print(f"视频 {video_name} 下载完成.")
        
        else:
            print("请求失败.")
    
    deduplicate_videos(save_path)

def calculate_md5(file_path):
    with open(file_path, 'rb') as f:
        data = f.read()
        md5_value = hashlib.md5(data).hexdigest()
    return md5_value

def deduplicate_videos(directory):
    video_files = os.listdir(directory)
    video_md5_dict = {}
    
    for video_file in video_files:
        video_path = os.path.join(directory, video_file)
        video_md5 = calculate_md5(video_path)
        
        if video_md5 not in video_md5_dict:
            video_md5_dict[video_md5] = video_path
        else:
            print(f"视频 {video_file} 与 {video_md5_dict[video_md5]} 重复,已删除.")
            os.remove(video_path)

if __name__ == "__main__":
    reset_times = int(input("请输入要重置访问多少次:"))
    download_videos(url, save_path, reset_times)

 

版权声明 1 本网站名称:诺言博客
2 本站永久网址:https://nuoyo.cn
3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长 QQ2469329338进行删除处理。
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
7 如无特别声明本文即为原创文章仅代表个人观点,版权归《诺言》所有,欢迎转载,转载请保留原文链接。
THE END
分享
二维码
打赏
海报
批量获取API接口视频类并下载 带MD5校验去重(Python)
简介 此款脚本适用于访问API直接返回视频的网站, 如api接口返回的为json格式,可联系站长进行改写 import requests import os from tqdm import tqdm imp……
<<上一篇
下一篇>>