b站视频下载之修改版,一键合并下载音视频

已修改成可以自定义文件保存路径,可以自动合并音频视频文件,且合并后自动删除源文件,由GPT-3.5帮助修改

爬虫代码来源

import os
import requests
import json
import re
from moviepy.audio.io.AudioFileClip import AudioFileClip
from moviepy.video.io.VideoFileClip import VideoFileClip


def my_match(text, pattern):
    match = re.search(pattern, text)
    return json.loads(match.group(1))


def download_video(old_video_url, video_url, audio_url, video_name, save_path):
    headers.update({"Referer": old_video_url})
    print("开始下载视频:%s" % video_name)

    video_content = requests.get(video_url, headers=headers)
    audio_content = requests.get(audio_url, headers=headers)

    video_file_path = os.path.join(save_path, f"{video_name}_video.mp4")
    audio_file_path = os.path.join(save_path, f"{video_name}_audio.mp4")

    with open(video_file_path, 'ab') as output:
        output.write(video_content.content)

    with open(audio_file_path, 'ab') as output:
        output.write(audio_content.content)

    print(f"视频已保存到: {video_file_path}")
    print(f"音频已保存到: {audio_file_path}")

    return video_name


if __name__ == '__main__':
    headers = {
        'Accept': '*/*',
        'Accept-Language': 'en-US,en;q=0.5',
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/63.0.3239.84 Safari/537.36'
    }
    # 修改b站视频播放界面链接!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    url = 'https://www.bilibili.com/video/BV1194y1T73u/?spm_id_from=333.788.recommend_more_video.0&vd_source=cf986de3ec49a44edb138cd8e0253419'
    res = requests.get(url, headers=headers)
    playinfo = my_match(res.text, '__playinfo__=(.*?)</script><script>')
    initial_state = my_match(res.text, r'__INITIAL_STATE__=(.*?);\(function\(\)')
    video_url = playinfo['data']['dash']['video'][0]['baseUrl']
    audio_url = playinfo['data']['dash']['audio'][0]['baseUrl']
    video_name = initial_state['videoData']['title']
    # 修改保存路径!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    custom_save_path = r'E:\Videos\新建文件夹2'
    download_video(url, video_url, audio_url, video_name, custom_save_path)

    # 设置标题
    title = video_name

    # 文件路径
    video = fr"{custom_save_path}\{title}_video.mp4"
    audio = fr"{custom_save_path}\{title}_audio.mp4"

    try:
        video_clip = VideoFileClip(video)  # 视频
        audio_clip = AudioFileClip(audio)  # 音频

        # 连接剪辑
        final_clip = video_clip.set_audio(audio_clip)
        # 导出视频
        final_clip.write_videofile(fr'{custom_save_path}\{title}.mp4')
        print('导出完成')

    except Exception as e:  # 捕获所有异常,但不做处理,继续执行后续代码
        print("An error occurred:", e)
        print('检查导出路径是否存在同名文件 合并视频是否存在')

    # 删除文件
    file_path = video
    file_path1 = audio
    if os.path.exists(file_path):
        os.remove(file_path)
        print(f"文件 {file_path} 已删除。")
    else:
        print(f"文件 {file_path} 不存在.")

    if os.path.exists(file_path1):
        os.remove(file_path1)
        print(f"文件 {file_path1} 已删除。")
    else:
        print(f"文件 {file_path1} 不存在.")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值