Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ ytbot Public

Telegram YouTube下载机器人,支持视频质量选择与自动下载

Notifications You must be signed in to change notification settings

yl948/ytbot

Repository files navigation

YTBot - Telegram YouTube 下载机器人

一个功能强大的Telegram机器人,可以下载YouTube视频,支持多种分辨率选择、自动下载和队列管理。

功能特色

  • 🎬 支持YouTube视频和Shorts下载
  • 🎯 手动选择视频质量
  • ⚙️ 自动下载指定分辨率(当设置默认分辨率时)
  • 📊 下载进度实时显示
  • 📁 自动归类保存视频文件
  • 🖼️ 自动下载视频缩略图
  • 📝 自动生成NFO元数据文件(兼容Emby/Plex)
  • 🔄 并发下载管理
  • 🔄 自动重试机制

使用Docker(推荐)

使用预构建镜像

# 使用docker命令运行
docker run -d \
 --name ytbot \
 --restart unless-stopped \
 -v $(pwd)/downloads:/app/downloads \
 -e BOT_TOKEN=你的Telegram机器人Token \
 -e ADMIN_USER_ID=你的Telegram用户ID \
 -e DOWNLOAD_PATH=/app/downloads \
 ainxxy/ytbot:latest

中国用户可能需要添加代理设置:

# 添加代理设置
-e HTTP_PROXY=http://host.docker.internal:7890 \
-e HTTPS_PROXY=http://host.docker.internal:7890 \

使用docker-compose

创建docker-compose.yml文件并添加以下内容:

services:
 ytbot:
 build:
 context: .
 dockerfile: Dockerfile
 container_name: ytbot
 restart: unless-stopped
 environment:
 - BOT_TOKEN=你的Telegram机器人Token
 - ADMIN_USER_ID=你的Telegram用户ID
 - DOWNLOAD_PATH=/app/downloads
 # 如果需要代理,取消下面两行的注释并填入代理地址
 # - HTTP_PROXY=http://host.docker.internal:7890
 # - HTTPS_PROXY=http://host.docker.internal:7890
 volumes:
 - ./downloads:/app/downloads
 network_mode: "host"

你可以选择使用预构建镜像或本地构建:

  1. 使用预构建镜像,将build部分替换为:
image: ainxxy/ytbot:latest
# 或者指定架构
# image: ainxxy/ytbot:latest-amd64
# image: ainxxy/ytbot:latest-arm64

然后启动容器:

docker-compose up -d

查看日志和状态

# 查看日志
docker logs ytbot
# 实时跟踪日志
docker logs -f ytbot
# 检查容器状态
docker ps | grep ytbot

手动安装

环境要求

  • Python 3.7+
  • FFmpeg
  • 网络连接

安装步骤

  1. 克隆仓库
git clone https://github.com/yl948/ytbot.git
cd ytbot
  1. 安装依赖
pip install -r requirements.txt
  1. 创建配置文件
# 创建config.py文件
cat > config.py << EOF
BOT_TOKEN = "你的Telegram机器人Token"
ADMIN_USER_ID = "你的Telegram用户ID"
DOWNLOAD_PATH = "./downloads"
# 如果需要代理,取消下面两行的注释并填入代理地址
# HTTP_PROXY = "http://proxy:port"
# HTTPS_PROXY = "http://proxy:port"
EOF
  1. 启动机器人
python bot.py

使用方法

基本命令

在Telegram中与机器人交互:

  • /start - 启动机器人
  • /help - 显示帮助信息
  • /status - 查看机器人状态
  • /toggle_quality - 切换质量选择模式
  • /resolution - 设置默认分辨率
  • /queue - 查看下载队列
  • /concurrent - 设置并发下载数量

下载视频

  1. 发送YouTube链接给机器人
  2. 如启用了手动选择质量,点击选择所需分辨率
  3. 如已设置默认分辨率,机器人会自动下载指定分辨率的视频
  4. 等待下载完成

设置默认分辨率

  1. 发送 /resolution 命令
  2. 从列表中选择想要的默认分辨率
  3. 选择后,发送YouTube链接时会自动下载该分辨率(如果可用)

注意事项

  • 该机器人默认仅允许管理员使用
  • 下载的视频会自动保存在配置的下载目录中
  • 支持的链接格式: youtube.com, youtu.be
  • 在中国使用时,通常需要配置代理

网络配置说明

主机网络模式

默认配置使用network_mode: "host",这在Linux环境下效果最好,特别是需要使用宿主机代理的情况。

桥接网络模式

如果遇到网络连接问题,可以尝试使用桥接网络模式:

services:
 ytbot:
 # 删除 network_mode: "host" 行
 # 添加以下配置
 network_mode: "bridge"
 # 如果需要使用宿主机代理,可以使用host.docker.internal
 environment:
 # ...其他环境变量
 - HTTP_PROXY=http://host.docker.internal:7890
 - HTTPS_PROXY=http://host.docker.internal:7890

自定义构建

使用GitHub Actions构建(推荐)

本项目配置了GitHub Actions工作流,可以构建多架构Docker镜像:

  1. Fork本仓库到您的GitHub账号
  2. 在仓库设置中添加DockerHub密钥:
    • 访问 Settings > Secrets and variables > Actions
    • 添加 DOCKERHUB_USERNAME: 您的Docker Hub用户名
    • 添加 DOCKERHUB_TOKEN: Docker Hub访问令牌
  3. 手动触发构建:
    • 访问仓库的 Actions 标签页
    • 选择 Docker Build and Push 工作流
    • 点击 Run workflow 按钮
    • 输入版本号(例如:1.0.0, 1.1.0)
    • 选择是否同时发布为latest标签
    • 点击 Run workflow 开始构建
  4. 构建完成后,镜像将发布到Docker Hub:
    • 指定版本: ainxxy/ytbot:1.0.0
    • latest标签: ainxxy/ytbot:latest

本地构建

如果您想在本地构建Docker镜像,可以使用以下命令:

# 构建多架构镜像(需要设置Docker Buildx)
docker buildx build --platform linux/amd64,linux/arm64 -t ainxxy/ytbot:1.0.0 .
# 仅构建当前平台镜像
docker build -t ainxxy/ytbot:1.0.0 .

许可证

MIT

About

Telegram YouTube下载机器人,支持视频质量选择与自动下载

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /