import requests
import os
import json
from moviepy.editor import VideoFileClip, AudioFileClip
from bs4 import BeautifulSoup

if __name__ == "__main__":
    url = 'https://movie.douban.com/j/chart/top_list'
    param = {
        'type': '24',
        'interval_id': '100 % 3A90',
        'action': '',
        'start': '0',
        'limit': '10',
    }

    headers = {
        'User-Agent': 'Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 99.0.4844.74 Safari / 537.36Edg / 99.0.1150.55'
    }
    response = requests.get(url=url, params=param, headers=headers)

    list_data = response.json()

    for data in list_data:
        title = data['title']
        video_url = data['video_url']
        audio_url = data['audio_url']

        headers['referer'] = url

        video_res = requests.get(video_url, headers=headers)
        with open('{}.mp4'.format(title), 'wb') as v_file:
            v_file.write(video_res.content)

        audio_res = requests.get(audio_url, headers=headers)
        with open('{}.mp3'.format(title), 'wb') as a_file:
            a_file.write(audio_res.content)

        video_clip = VideoFileClip('{}.mp4'.format(title))
        audio_clip = AudioFileClip('{}.mp3'.format(title))
        merge_result = video_clip.set_audio(audio_clip)
        merge_result.write_videofile('merge-{}.mp4'.format(title))

    print("视频合并完成!")

该代码从豆瓣热门视频榜单下载前10个视频的视频和音频文件,并将其合并为一个单独的视频文件。

使用方法:

  1. 确保已安装 requests, moviepy, bs4 库。
  2. 运行代码。
  3. 代码将下载视频和音频文件,并将其合并到名为 'merge-{title}.mp4' 的文件中。

注意:

  • 代码会下载每个视频的音频和视频文件,因此可能需要一段时间才能完成。
  • 代码假设视频和音频文件名称相同。
  • 如果您想更改下载的视频数量,请修改 limit 参数的值。
  • 如果您想下载其他类型的视频,请修改 type 参数的值。

参考文档:


原文地址: http://www.cveoy.top/t/topic/fQWi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录