这是一个基于 vinext 运行的 Next.js App Router 兼容项目,支持从 Bilibili、抖音、小红书等平台下载视频和音频。
- 🎵 支持 Bilibili 视频/音频下载
- 🎬 支持抖音无水印视频下载及音频提取
- 📷 支持小红书视频笔记和图文笔记下载
- 🔍 自动识别平台链接
- 🎨 现代化的用户界面设计
- 💾 本地下载历史记录
- 🌍 多语言支持(简体中文、繁体中文、英文)
首先,运行开发服务器:
pnpm dev在浏览器中打开 http://localhost:3000 即可看到应用界面。
如需回退到原始 Next.js CLI,可使用:
pnpm dev:next- 复制视频链接(支持 Bilibili、抖音、小红书等平台)
- 粘贴到输入框中
- 点击解析按钮
- 选择下载音频或视频
- 等待下载完成,文件会自动保存
- Bilibili:
https://www.bilibili.com/video/BV...或https://b23.tv/... - 抖音:
https://www.douyin.com/...或https://v.douyin.com/... - 小红书:
https://www.xiaohongshu.com/explore/...或https://xhslink.com/...
- vinext
- Next.js 16 App Router API 兼容层
- React 19
- Vite 8
- TypeScript
- Tailwind CSS
- shadcn/ui
- Fetch API(前端网络请求)
- FFmpeg.wasm (浏览器端音频提取)
- JSZip (图片打包下载)
- 克隆项目
- 安装依赖:
pnpm install
- 运行开发服务器:
pnpm dev
- 生产构建:
pnpm build
- 启动构建产物:
pnpm start
兼容回退脚本:
pnpm dev:nextpnpm build:nextpnpm start:next
已启用 next.config.ts 中的 reactCompiler。项目提供了一个“热点组件定向校验”脚本:
npm run react-compiler:check脚本会基于 .next 构建产物检查关键客户端模块是否出现 React Compiler 标记(如 react.memo_cache_sentinel / useMemoCache),并生成报告:
.next/react-compiler-report.json
部署时建议配置以下环境变量,避免预发环境被收录并确保 canonical 正确:
NEXT_PUBLIC_SITE_URL: 当前环境站点地址(例如https://downloader.bhwa233.com)SEO_INDEXABLE: 是否允许索引,true/false
默认策略:
- 在 Vercel 生产环境自动允许索引
- 在 Vercel 预览环境默认不允许索引
- 非 Vercel 环境按
NODE_ENV === production判断是否允许索引 - 可通过
SEO_INDEXABLE显式覆盖
建议每周检查以下指标,持续验证本仓库内的 SEO 配置是否生效:
- Search Console 的
索引页面与未编入索引原因 sitemap.xml提交状态与抓取成功率- Core Web Vitals(LCP、INP、CLS)趋势
- 重点页面(首页、FAQ、Guides)的展示量与点击量
- 多语言页面的
hreflang与 canonical 是否一致
默认使用 vinext 生成 dist/ 构建产物。部署前请先执行:
pnpm build如需继续使用原始 Next.js 构建链路,可改用 pnpm build:next。
Cloudflare Workers 部署请使用:
pnpm deploy如果平台已经先执行过 pnpm build,部署命令请改为:
pnpm deploy:ci预览部署可使用:
pnpm deploy:preview不要直接使用 wrangler deploy 作为部署命令。当前项目基于 vinext,应由 vinext deploy 负责生成所需配置、构建并调用 Wrangler。