下载视频到本地python代码段

mp4_url  = 视频url连接

 

def w_mp4(mp4_url):
    resp = requests.get(mp4_url)
    content = resp.content
    with open("111.mp4", "wb") as f:
        f.write(content)

### 使用Python编写B站视频下载爬虫 为了实现从B站下载视频的功能,完整的Python代码不仅涉及网络请求部分,还需要考虑如何解析目标页面获取实际媒体文件链接以及处理可能存在的反爬机制。下面提供一段简化版的代码示例来说明这一过程[^1]。 ```python import requests from urllib.parse import urlencode import json def get_video_info(bvid): url = f"https://api.bilibili.com/x/web-interface/view?{urlencode({'bvid': bvid})}" response = requests.get(url).json() cid = response['data']['cid'] title = response['data']['title'] play_url = "https://api.bilibili.com/x/player/playurl" params = { 'bvid': bvid, 'cid': cid, 'qn': 120, # qn参数控制画质,默认最高清 'fnval': 16 # 是否开启HDR模式 } video_data = requests.get(play_url, params=params).json() download_urls = [] for d in video_data["data"]["durl"]: download_urls.append(d["url"]) return {"title": title, "urls": download_urls} if __name__ == "__main__": bv_id = input("请输入要下载视频BV号:") info = get_video_info(bv_id) print(f'即将下载《{info["title"]}》') for idx, link in enumerate(info["urls"], start=1): file_name = f"{idx}.mp4" with open(file_name, mode='wb') as f: resp = requests.get(link, stream=True) total_length = int(resp.headers.get('content-length')) downloaded_size = 0 for chunk in resp.iter_content(chunk_size=1024 * 1024): if not chunk: break downloaded_size += len(chunk) percent_done = (downloaded_size / total_length) * 100 print(f'\r正在下载第 {idx} 部分...进度:{percent_done:.2f}%', end='') f.write(chunk) print("\n完成") ``` 这段程序首先调用了`get_video_info()`函数去查询指定ID(`bv`)对应的视频详情页API接口,从而获得该视频各P的实际播放地址列表;之后遍历这些URL逐个发起GET请求并保存响应体至本地磁盘中形成最终的MP4文件[^5]。 值得注意的是,在真实环境中执行上述操作前应当仔细阅读网站的服务条款,确保自己的行为合法合规,并尊重版权方权益。此外,由于各大平台的安全策略不断更新迭代,具体实现细节可能会有所变化,请读者朋友们灵活调整适应最新情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值