#!/bin/bash # B站下载工具 - By OpenClaw # 下载视频(默认480P) bilibili() { if [ -z "$1" ]; then echo "用法: bilibili " return fi yt-dlp -f "bv[height<=480]+ba" --downloader aria2c "$1" } # 下载弹幕 danmaku() { if [ -z "$1" ]; then echo "用法: danmaku " return fi bv=$(echo "$1" | grep -oE 'BV[a-zA-Z0-9]+' | head -1) if [ -n "$bv" ]; then curl -s "https://api.bilibili.com/x/v1/dm/list.so?oid=$(python3 -c "print('$bv'[:10].encode().hex())")" -o "${bv}.xml" 2>/dev/null echo "已保存到: ${bv}.xml" fi } # 查看视频信息 info() { if [ -z "$1" ]; then echo "用法: bilibili-info " return fi yt-dlp --dump-json "$1" | python3 -c "import sys,json; d=json.load(sys.stdin); print('标题:', d.get('title')); print('UP主:', d.get('uploader')); print('时长:', d.get('duration')); [print(f'{f[\"format_note\"]}: {f[\"ext\"]}') for f in d.get('formats',[])[:10]]" } # 默认帮助 if [ -z "$1" ]; then echo "📺 B站下载工具" echo "================" echo " bilibili <链接> # 下载视频(480P)" echo " danmaku <链接> # 下载弹幕" echo " bilibili-info <链接> # 查看视频信息" echo "" echo "示例: bilibili https://www.bilibili.com/video/BV1xx411c7mD" fi