Skip to content

JosephusZhou/yt-dlp-web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yt-dlp-web

一个基于 Node.js + 原生前端的简单下载工具,支持多任务并行、实时日志流式显示,并可在 MP4 / MP3 两种配置间切换。

功能

  • 输入任意 http/https 视频链接,点击下载即可调用 yt-dlp 下载
  • 日志实时流式输出,下载完成/失败后自动折叠,支持多任务并行查看
  • 前端格式下拉:MP4(默认,使用 config/yt-dlp.conf,限制 ≤480p)或 MP3(使用 config/yt-dlp-mp3.conf
  • 下载文件输出到项目根目录的 downloads/,自动创建
  • 安全校验:仅允许 http/https 链接,基础请求体大小限制

运行要求

  • Node.js 16+(建议 LTS)
  • 已安装 yt-dlp 并在 PATH 中可执行

快速开始

# 安装依赖(本项目无额外依赖,可选)
npm install

# 启动服务(默认端口 3000,可用 PORT 覆盖)
PORT=3000 npm start

访问 http://localhost:3000,输入链接、选择格式并点击“下载视频/音频”。每个任务会生成独立日志卡片,实时显示 yt-dlp 输出,结束后自动折叠。

前端交互

  • 输入框:视频链接(需带 http/https)
  • 下拉框:选择 MP4 或 MP3
  • 按钮:“预览链接”仅校验与回显;“下载视频/音频”发起下载并追加新的日志面板

后端接口

  • POST /api/download
    • 请求体:{ url: string, format: 'mp4' | 'mp3' }(format 省略则默认 mp4)
    • 行为:根据 format 选择配置文件启动 yt-dlp,以 chunked 响应流式返回终端输出;末尾附 STATUS:OKSTATUS:FAIL ...
    • 输出目录:downloads/

配置

  • config/yt-dlp.conf:限制视频清晰度不高于 480p,合并为 MP4
  • config/yt-dlp-mp3.conf:抽取音频为 MP3(你已添加)
  • 如需自定义,可直接编辑上述配置文件;服务启动时无需重启即可读取新配置(下次请求生效)

文件结构(关键部分)

  • src/index.js:简易静态文件服务器 + /api/download 流式接口
  • public/index.html:前端页面、格式选择、日志面板
  • config/yt-dlp.conf / config/yt-dlp-mp3.conf:下载配置
  • downloads/:下载输出目录(运行时自动创建)

常见问题

  • 提示找不到 yt-dlp:确认本机已安装并在 PATH 中可执行(如 which yt-dlp)。
  • 端口被占用:设置 PORT 环境变量为未占用端口。
  • 下载日志未出现:确保网络可访问目标视频源,且后端已在运行。

许可证

本示例未附带许可证,按需自定。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors