news 2026/6/15 21:13:52

【爬虫】下载ffmpeg,爬取b站视频,把音频和视频合成一个视频

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【爬虫】下载ffmpeg,爬取b站视频,把音频和视频合成一个视频

ffmpeg下载

代码实现

importpprintimportsubprocessimportrequestsfromfake_useragentimportUserAgentimportrandomimportreimportjsonimportosfromlxmlimportetree ua=UserAgent()headers={"User-Agent":ua.random,"Referer":"https://www.bilibili.com/","Cookie":"buvid3=F8C19783-ACEA-59F9-B2AA-26DE8893EA9952876infoc; b_nut=1766841352; b_lsid=E37ACBD9_19B5FF38753; bsource=search_baidu; _uuid=199102BB2-10938-D12A-5B96-F10F59D96F2E554076infoc; home_feed_column=5; browser_resolution=1920-945; buvid_fp=61e3c5797af3dabc5837e04f907d9dc2; bmg_af_switch=1; bmg_src_def_domain=i2.hdslb.com; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NjcxMDA1NTMsImlhdCI6MTc2Njg0MTI5MywicGx0IjotMX0.kDsmSBtlR_REtna9rsGhPPhHrV8Pxy72B2h_BLrZwbM; bili_ticket_expires=1767100493; buvid4=8E67B41C-E535-B165-EB97-0EDD40DE2C6154154-025122721-PpSVmW9OodzKBxrGNjP3RWsvbFnkFXlE+0v7ibTZbIJ6B8znXQ04IOaU2ko2k395; CURRENT_FNVAL=4048; CURRENT_QUALITY=0; rpdid=0zbfAHJoqP|VlKIIjWh|1sD|3w1Vzu9Y; sid=5uy36kmc","Accept":"application/json, text/plain, */*","Accept-Language":"zh-CN,zh;q=0.9","Connection":"keep-alive"}defget_play_url(url):# 1 爬取视频页的网页源码resp=requests.get(url=url,headers=headers)# 2 提取视频和音频的播放地址info=re.findall('window.__playinfo__=(.*?)</script>',resp.text)[0]# 获取视频的播放地址video_url=json.loads(info)['data']['dash']['video'][0]['baseUrl']# video_url = 'https://upos-sz-mirror08c.bilivideo.com/upgcxcode/08/75/719057508/719057508-1-30032.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&nbs=1&uipk=5&platform=pc&mid=0&os=08cbv&oi=0x24098a2808e7b7b041754bc94fd27906&deadline=1766850571&trid=b3e1ff33737b4b2cb496b415f6ca381u&gen=playurlv3&og=hw&upsig=372638e0bb9b5aa0075b58bc52b87598&uparams=e,nbs,uipk,platform,mid,os,oi,deadline,trid,gen,og&bvc=vod&nettype=0&bw=428953&build=0&dl=0&f=u_0_0&qn_dyeid=cf4203b6ed795ca600e7072f694fe3eb&agrr=0&buvid=&orderid=0,3'# 获取音频的播放地址audio_url=json.loads(info)['data']['dash']['audio'][0]['baseUrl']# audio_url = 'https://upos-sz-estghw.bilivideo.com/upgcxcode/08/75/719057508/719057508-1-30216.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&platform=pc&trid=222c1eb52fb745c5bd6069a5930008du&oi=0x24098a2808e7b7b041754bc94fd27906&deadline=1766850802&uipk=5&gen=playurlv3&os=estghw&mid=0&nbs=1&og=hw&upsig=7d093ee5b56ec63263af9e3c814e538c&uparams=e,platform,trid,oi,deadline,uipk,gen,os,mid,nbs,og&bvc=vod&nettype=0&bw=67689&f=u_0_0&qn_dyeid=16133e653e0485130061eb45694fe4d2&agrr=0&buvid=&build=0&dl=0&orderid=0,3'# 获取标题html=etree.HTML(resp.text)filename=html.xpath("//h1/text()")[0]returnfilename,video_url,audio_url# 3 下载并保存视频和音频defdownload_files(filename,video_url,audio_url,path):print('开始下载视频,音频.......')video_content=requests.get(url=video_url,headers=headers).content audio_content=requests.get(url=audio_url,headers=headers).contentifnotos.path.exists(f'{path}/video'):print('创建video文件夹')os.makedirs(f'{path}/video')withopen(f'video/{filename}.mp4','ab')asf:f.write(video_content)print('视频已下载完毕...')withopen(f'video/{filename}.mp3','ab')asf:f.write(audio_content)print('音频已下载完毕...')# 4 使用ffmpeg合并视频和音频# ffmpegdefcombine_files(filename,path):ffmpeg=r"D:\software\ffmpeg-8.0.1-full_build\bin\ffmpeg.exe"input_video=rf"{path}\video\{filename}.mp4"input_audio=rf"{path}\video\{filename}.mp3"output_video=rf"{path}\video\output-{filename}.mp4"cmd=[ffmpeg,'-i',input_video,'-i',input_audio,'-c:v','copy','-c:a','aac',output_video]result=subprocess.run(cmd,capture_output=True,text=True,encoding='utf-8',errors='ignore')print("stdout:",result.stdout)print("stderr:",result.stderr)ifresult.returncode==0:print('已完成合并........')else:print('合并失败,请检查错误信息')if__name__=='__main__':url="https://www.bilibili.com/video/BV1AA4y1D7h2?vd_source=5fb207316e3b77a15884783d3c143acf"path=r"E:\spider_code\video_bilibili"filename,video_url,audio_url=get_play_url(url)# download_files(filename, video_url, audio_url, path)combine_files(filename,path)

结果展示:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 17:09:24

多线程编程

多线程编程的核心是 “并发”&#xff0c;但并发的背后必然绕不开 “同步”—— 如果多个线程争抢共享资源&#xff0c;轻则数据错乱&#xff0c;重则程序卡死。POSIX 线程库&#xff08;pthread&#xff09;作为 Linux 下多线程开发的标准&#xff0c;提供了三大核心同步原语&…

作者头像 李华
网站建设 2026/6/15 18:29:56

YOLO在森林防火预警中的应用:烟雾火焰早期识别

YOLO在森林防火预警中的应用&#xff1a;烟雾火焰早期识别 当瞭望塔上的摄像头突然捕捉到林区边缘的一缕灰白色飘动&#xff0c;系统在0.7秒内完成分析——不是晨雾&#xff0c;不是飞鸟&#xff0c;而是初起的山火烟雾。报警信号瞬间通过5G网络上传至指挥中心&#xff0c;无人…

作者头像 李华
网站建设 2026/6/15 20:17:14

YOLO在垃圾分类项目中的应用:可回收物自动识别

YOLO在垃圾分类项目中的应用&#xff1a;可回收物自动识别 在城市垃圾处理站的传送带上&#xff0c;塑料瓶、易拉罐和纸箱混杂着厨余残渣快速移动。传统人工分拣不仅效率低下&#xff0c;还面临卫生与安全风险。有没有可能让机器“一眼”就认出哪些是可回收物&#xff1f;这正是…

作者头像 李华
网站建设 2026/6/15 18:55:29

专家视角:深入解析 iframe 在 keep-alive 中的缓存失效问题

在 Vue3 Vue Router4 的项目中&#xff0c;你是否遇到过这样的困惑&#xff1a;当使用 iframe 嵌入外部页面并配合 keep-alive 缓存机制时&#xff0c;切换 Tab 总是会导致 iframe 重新加载&#xff0c;缓存似乎完全失效&#xff1f;这是一个典型的技术难题&#xff0c;今天我…

作者头像 李华
网站建设 2026/6/15 19:20:49

YOLO模型支持Ray Serve分布式服务部署

YOLO模型支持Ray Serve分布式服务部署 在智能制造工厂的质检线上&#xff0c;成千上万的产品正以每分钟数百件的速度通过视觉检测工位。每一帧图像都需要在百毫秒内完成缺陷识别——这不仅是对算法精度的考验&#xff0c;更是对整个AI系统吞吐能力和稳定性的极限挑战。传统基于…

作者头像 李华
网站建设 2026/6/15 18:24:39

YOLO目标检测支持Redis缓存加速高频查询

YOLO目标检测支持Redis缓存加速高频查询 在现代智能系统中&#xff0c;从工厂产线的实时质检到城市级视频监控平台&#xff0c;图像请求往往呈现出高度重复、周期性强的特点。比如一条自动化装配线上每秒拍摄同一工位的照片&#xff0c;或安防摄像头持续轮询固定区域——这些场…

作者头像 李华