Files
server-configs/bilibili.sh
2026-02-13 22:24:27 +08:00

45 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# B站下载工具 - By OpenClaw
# 下载视频(默认480P)
bilibili() {
if [ -z "$1" ]; then
echo "用法: bilibili <B站链接或BV号>"
return
fi
yt-dlp -f "bv[height<=480]+ba" --downloader aria2c "$1"
}
# 下载弹幕
danmaku() {
if [ -z "$1" ]; then
echo "用法: danmaku <B站链接或BV号>"
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 <B站链接>"
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