当前位置: 首页 > article >正文

Mac下载bilibili视频

安装

  1. 安装 yt-dlp

    brew install yt-dlp
    
  2. 安装FFmpeg

    用于合并音视频流、转码等操作

    brew install ffmpeg
    

使用

下载单个视频
  1. 查看可用格式

    yt-dlp -F  --cookies-from-browser chrome "https://www.bilibili.com/video/BV15B4y1G7F3?spm_id_from=333.788.recommend_more_video.-1&vd_source=6d42abad8703c58f028f7f53a5be37c0"
    
    ID     EXT RESOLUTION FPS │   FILESIZE    TBR PROTO │ VCODEC           VBR ACODEC       ABR
    ───────────────────────────────────────────────────────────────────────────────────────────
    30216  m4a audio only     │ ≈  1.48MiB    46k https │ audio only           mp4a.40.5    46k
    30232  m4a audio only     │ ≈  3.21MiB   100k https │ audio only           mp4a.40.2   100k
    30280  m4a audio only     │ ≈  5.32MiB   167k https │ audio only           mp4a.40.2   167k
    30251  m4a audio only     │ ≈ 72.77MiB  2277k https │ audio only           flac       2277k
    30016  mp4 640x360     29 │ ≈ 11.31MiB   354k https │ avc1.64001E     354k video only
    100022 mp4 640x360     30 │ ≈  9.69MiB   303k https │ av01.0.01M.08   303k video only
    100109 mp4 640x360     30 │ ≈  7.31MiB   229k https │ hev1.1.6.L120   229k video only
    30032  mp4 852x480     29 │ ≈ 25.29MiB   791k https │ avc1.64001F     791k video only
    100023 mp4 852x480     30 │ ≈ 13.43MiB   420k https │ av01.0.04M.08   420k video only
    100110 mp4 852x480     30 │ ≈ 11.52MiB   360k https │ hev1.1.6.L120   360k video only
    30064  mp4 1280x720    29 │ ≈ 52.62MiB  1647k https │ avc1.640028    1647k video only
    100024 mp4 1280x720    30 │ ≈ 26.11MiB   817k https │ av01.0.05M.08   817k video only
    100111 mp4 1280x720    30 │ ≈ 21.32MiB   667k https │ hev1.1.6.L120   667k video only
    30080  mp4 1920x1080   29 │ ≈ 84.02MiB  2629k https │ avc1.640032    2629k video only
    100026 mp4 1920x1080   30 │ ≈ 52.86MiB  1654k https │ av01.0.08M.08  1654k video only
    100113 mp4 1920x1080   30 │ ≈ 44.88MiB  1404k https │ hev1.1.6.L150  1404k video only
    100144 mp4 1920x1080   59 │ ≈ 56.37MiB  1764k https │ hev1.1.6.L150  1764k video only
    100028 mp4 1920x1080   60 │ ≈ 59.68MiB  1867k https │ av01.0.09M.08  1867k video only
    30116  mp4 1920x1080   62 │ ≈138.18MiB  4324k https │ avc1.640032    4324k video only
    100029 mp4 3840x2160   60 │ ≈233.22MiB  7298k https │ av01.0.13M.08  7298k video only
    30120  mp4 3840x2160   62 │ ≈417.50MiB 13064k https │ avc1.640034   13064k video only
    100145 mp4 3840x2160   62 │ ≈239.33MiB  7489k https │ hev1.1.6.L153  7489k video only
    30127  mp4 7680x4320   29 │ ≈411.37MiB 12873k https │ hev1.1.6.L180 12873k video only
    100032 mp4 7680x4320   30 │ ≈379.13MiB 11864k https │ av01.0.16M.08 11864k video only
    
  2. 下载指定分辨率视频

    // 100032 map4数据的ID
    // 30280 m4a数据的ID
    // --merge-output-format 使用ffmpeg合并mp4+m4a
    yt-dlp -f 100032+30280 --merge-output-format mp4 --cookies-from-browser chrome "https://www.bilibili.com/video/BV15B4y1G7F3/?vd_source=6d42abad8703c58f028f7f53a5be37c0"
    
  3. 动态选择分辨率

    yt-dlp -f "bestvideo[height=2160][vcodec^=avc1]+bestaudio" --merge-output-format mp4 --cookies-from-browser chrome "https://www.bilibili.com/video/BV15B4y1G7F3/?vd_source=6d42abad8703c58f028f7f53a5be37c0"
    
下载合集
  1. 命令

    yt-dlp -f "bestvideo+bestaudio/best" --merge-output-format mp4 "合集url"
    
自动化下载
  1. 脚本

    import subprocess
    import sysdef main(input_file):try:with open(input_file, 'r', encoding='utf-8') as urls:for url in urls:print("url:", url)  subprocess.run([  # 此处改为 4 个空格缩进"yt-dlp","-f", "bestvideo+bestaudio/best","-o", "%(playlist_title)s/%(title)s.%(ext)s",  # 通过 %(playlist_title)s 变量指定合集名称作为文件夹名,%(title)s 作为文件名"--concurrent-fragments","4", # 多线程下载"--merge-output-format", "mp4","--cookies-from-browser", "chrome",url.strip()  # 建议添加 strip() 去除 URL 末尾换行符])except FileNotFoundError:print(f"错误:文件 '{input_file}' 不存在")except Exception as e:print(f"其他错误:{e}")if __name__ == "__main__":if len(sys.argv) != 2:print("用法:python script.py <文件路径>")sys.exit(1)main(sys.argv[1])  # sys.argv[1] 为第一个参数(文件路径)
    
  2. 使用

    python3 脚本名 下载地址文本
    
    https://www.bilibili.com/video/BV15B4y1G7F3
    https://www.bilibili.com/video/BV1Ts4y1W7v4
    https://www.bilibili.com/video/BV1mv4y1y7wG
    https://www.bilibili.com/video/BV18T421Y7fA
    https://www.bilibili.com/video/BV13q421c7mY
    

yt-dlp参数解析

基础参数
  1. 格式选择与画质控制

    • -f/--format:指定下载格式(支持动态筛选器或固定ID)

      # 下载最佳视频+最佳音频(自动合并)
      yt-dlp -f "bestvideo+bestaudio" URL# 下载4K分辨率(H.264编码)
      yt-dlp -f "bestvideo[height=2160][vcodec^=avc1]" URL# 列出所有可用格式(ID、分辨率、编码)
      yt-dlp -F URL
      
    • -S/--format-sort:按特定规则排序格式

      # 优先选择分辨率≤1080p且H.264编码的视频
      yt-dlp -S "+res:1080,codec:avc1" URL
      
  2. 输出路径与文件名

    • -o/--output:自定义保存路径与命名规则

      # 按标题保存到指定目录(支持变量占位符)
      yt-dlp -o "~/Downloads/%(title)s.%(ext)s" URL# 包含播放列表序号(适用于批量下载)
      yt-dlp -o "%(playlist_index)s-%(title)s.%(ext)s" PLAYLIST_URL
      
音频与字幕参数
  1. 音频提取与转换

    • -x/--extract-audio:提取音频

      # 提取为MP3格式(最高音质)
      yt-dlp -x --audio-format mp3 --audio-quality 0 URL
      
  2. 字幕处理

    • --write-subs:下载字幕

      # 下载简体中文字幕(不下载视频)
      yt-dlp --write-subs --sub-langs "zh-Hans" --no-download URL# 嵌入字幕到视频文件(需FFmpeg)
      yt-dlp --embed-subs URL
      
登录与网络参数
  1. 身份认证

    • --cookies-from-browser:从浏览器读取Cookies(需关闭浏览器)

      # 使用Chrome的Cookies下载大会员专享内容(如B站4K)
      yt-dlp --cookies-from-browser chrome URL
      
    • --cookies:加载手动导出的Cookies文件

      # 使用cookies.txt文件绕过登录限制
      yt-dlp --cookies cookies.txt URL
      
  2. 代理与限速

    • --proxy:通过代理访问

      # 使用SOCKS5代理下载(绕过地域限制)
      yt-dlp --proxy "socks5://127.0.0.1:1080" URL
      
    • --limit-rate:限制下载速度

      # 限制速度为1MB/s(单位:KB/s)
      yt-dlp --limit-rate 1000 URL
      
播放列表与批量下载
  1. 播放列表控制

    • --playlist-items:选择播放列表中的特定项

      # 下载前5个视频(支持范围如1-5,7)
      yt-dlp --playlist-items 1-5,7 PLAYLIST_URL
      
    • --yes-playlist:强制解析为播放列表

      # 下载单个视频时避免误识别为播放列表
      yt-dlp --no-playlist URL
      
  2. 批量下载

    • -a/--batch-file:从文件读取多个URL

      # 批量下载urls.txt中的链接
      yt-dlp -a urls.txt
      
下载加速
  1. 启用多线程

    --concurrent-fragments 4
    
  2. 使用aria2加速

    --downloader aria2c
    
http://www.lryc.cn/news/2383416.html

相关文章:

  • Unity editor文件数UI(支持勾选框)
  • 【Node.js】Web开发框架
  • 使用Vite创建一个动态网页的前端项目
  • 系统架构设计师案例分析题——web篇
  • MySQL--day5--多表查询
  • 【Redis】AOF日志的三种写回机制
  • leetcode hot100刷题日记——7.最大子数组和
  • 基于Spring Boot和Vue的在线考试系统架构设计与实现(源码+论文+部署讲解等)
  • MySQL Workbench 工具导出与导入数据库:实用指南
  • Android 绘制折线图
  • 自建srs实时视频服务器支持RTMP推流和拉流
  • ubuntu22.04 卸载ESP-IDF
  • Spring IOCDI————(2)
  • 80. Java 枚举类 - 使用枚举实现单例模式
  • 融云 uni-app IMKit 上线,1 天集成,多端畅行
  • Java中的集合详解
  • 利用 Java 爬虫根据关键词获取某手商品列表
  • Axure项目实战:智慧运输平台后台管理端-订单管理2(多级交互)
  • 篇章五 项目创建
  • Ntfs!ATTRIBUTE_RECORD_HEADER结构$INDEX_ROOT=0x90的一个例子
  • AGI大模型(30):LangChain链的基本使用
  • 代码随想录算法训练营第六十六天| 图论11—卡码网97. 小明逛公园,127. 骑士的攻击
  • [创业之路-364]:企业战略管理案例分析-5-战略制定-宇树科技的使命、愿景、价值观的演变过程
  • React--函数组件和类组件
  • Flask 路由装饰器:从 URL 到视图函数的优雅映射
  • DDoS防护实战——从基础配置到高防IP部署
  • aws平台s3存储桶夸域问题处理
  • HOT100(二叉树)
  • 【vue-text-highlight】在vue2的使用教程
  • pycharm无法正常调试问题