抖音下载jsbox怎么用?
核心思路
- 获取抖音 Web 页面:通过
http.get请求抖音的分享链接,获取其 HTML 内容。 - 解析视频地址:抖音的 HTML 中通常包含一个
<script>标签,里面存有 JSON 数据,其中包含了视频的直接链接 (playAddr或download_addr)。 - 下载视频:解析出视频链接后,使用
http.download将视频文件下载到 JSBox 的沙盒目录中。 - 显示通知:下载完成后,使用
notification提示用户。
完整 JSBox 脚本
你可以直接复制下面的全部代码,在 JSBox 中新建一个 JavaScript 文件并粘贴进去。
(图片来源网络,侵删)
// 抖音视频下载器
// 作者: JSBox 社区
// 日期: 2025-10-27
// 主函数,入口
async function main() {
// 1. 获取用户输入的抖音分享链接
const { url } await $input.text({
placeholder: "请粘贴抖音分享链接",
handler: (text) => ({ url: text.trim() })
});
// 检查输入是否为空
if (!url) {
$ui.alert("请输入有效的抖音链接!");
return;
}
// 2. 请求抖音页面,获取 HTML
$ui.loading(true);
try {
const html = await http.get(url);
// 3. 从 HTML 中解析出视频数据
// 通过正则表达式找到包含视频信息的 script 标签
const videoDataRegex = /<script>window\.__INITIAL_STATE__=({.+?});\(function\(\)\{var s;.*?\}\(\)\);<\/script>/;
const match = html.match(videoDataRegex);
if (!match || !match[1]) {
throw new Error("无法解析页面数据,可能是链接无效或页面结构已更改。");
}
const initialState = JSON.parse(match[1]);
// 根据最新的页面结构调整数据路径 (2025年10月)
const videoItem = initialState?.videoDetail?.itemInfo?.itemStruct;
if (!videoItem || !videoItem.playAddr || !videoItem.playAddr.urlList || videoItem.playAddr.urlList.length === 0) {
throw new Error("未找到视频播放地址。");
}
// 获取视频标题和最高清的链接
const videoTitle = videoItem.desc || "未命名视频";
const videoUrl = videoItem.playAddr.urlList[0]; // 通常第一个链接是最高清的
console.log(`视频标题: ${videoTitle}`);
console.log(`视频链接: ${videoUrl}`);
// 4. 下载视频文件
$ui.toast("开始下载视频...");
const downloadPath = await http.download({
url: videoUrl,
save: "Douyin" // 将文件保存在 Douyin 文件夹下
});
// 5. 下载完成,显示通知
$ui.loading(false);
$ui.alert("下载成功!", `视频 "${videoTitle}"\n已保存至: ${downloadPath}`);
} catch (error) {
$ui.loading(false);
$ui.alert("下载失败", error.message);
console.error(error);
}
}
// 执行主函数
main();
使用步骤
- 打开 JSBox:在你的手机上启动 JSBox 应用。
- 新建脚本:
- 点击右下角的 号,选择
JavaScript。 - 给你的脚本起个名字,
抖音下载。
- 点击右下角的 号,选择
- 粘贴代码:将上面提供的完整代码复制并粘贴到新建的脚本编辑器中。
- 运行脚本:
点击编辑器右上角的运行按钮(一个三角图标)。
- 输入链接:
- 脚本运行后,会弹出一个输入框。
- 从抖音 App 复制视频分享链接:打开抖音 App,找到你想下载的视频,点击右下角的
分享按钮,然后选择复制链接。 - 将复制的链接粘贴到 JSBox 的输入框中,点击
确定。
- 等待下载:
- 脚本会开始请求、解析并下载视频,你会在屏幕上看到加载提示。
- 下载完成后,会弹出一个成功提示,告诉你视频的保存路径。
代码详解
-
async function main()- 使用
async/await语法可以让异步代码(如网络请求)看起来像同步代码一样,逻辑更清晰。
- 使用
-
$input.text()- 这是 JSBox 提供的输入组件,用于弹出一个文本框让用户输入内容。
placeholder是输入框的提示文字。handler是一个回调函数,当用户输入完成并点击确定后,它会返回用户输入的文本。
-
http.get(url)(图片来源网络,侵删)这是 JSBox 的网络请求工具,用于获取指定 URL 的内容,这里我们用它来获取抖音分享页的 HTML。
-
html.match(videoDataRegex)- 这是整个脚本的核心,抖音为了方便前端渲染,会把大部分关键数据(包括视频链接)以 JSON 格式放在一个
<script>标签里,并赋值给window.__INITIAL_STATE__。 - 我们用正则表达式精准地找到这个
script标签的内容。 - 注意:网页结构可能会更新,如果这个正则表达式失效了,就需要根据新的页面结构调整。
- 这是整个脚本的核心,抖音为了方便前端渲染,会把大部分关键数据(包括视频链接)以 JSON 格式放在一个
-
JSON.parse(match[1])将匹配到的 JSON 字符串转换成一个 JavaScript 对象,方便我们从中提取数据。
(图片来源网络,侵删) -
initialState?.videoDetail?.itemInfo?.itemStruct- 这是数据路径,通过这个路径,我们可以一层层地访问到视频对象 (
videoItem)。 - 使用 (可选链操作符)可以防止在某一层路径为
undefined时导致整个程序崩溃。
- 这是数据路径,通过这个路径,我们可以一层层地访问到视频对象 (
-
videoItem.playAddr.urlList[0]playAddr是视频地址对象,urlList是一个包含多个清晰度视频链接的数组,通常第一个是最高清的。
-
http.download(...)- 这是 JSBox 的文件下载工具。
url: 要下载的文件地址(就是我们解析出的视频链接)。save: 指定保存的文件夹名称,如果文件夹不存在,JSBox 会自动创建,下载的文件会保存在JSBox/Douyin/目录下。
-
$ui.alert()和$ui.toast()$ui.alert用于显示一个模态弹窗,适合显示重要信息(如成功/失败)。$ui.toast用于显示一个短暂的提示信息,适合在操作过程中给用户反馈。
重要提示
- 链接有效性:此脚本仅适用于抖音 App 内的分享链接,格式通常为
https://v.douyin.com/xxxxxx/,它不适用于抖音网页版的链接。 - 网页结构变化:抖音可能会随时更新其网页前端代码,导致解析数据的正则表达式或数据路径失效,如果脚本突然不能用了,很可能是这个原因,届时需要根据新的页面结构更新脚本。
- 版权问题:请尊重原创作者的版权,下载的视频仅供个人学习或欣赏使用,请勿用于商业传播或二次创作。
希望这个详细的教程能帮助你成功在 JSBox 中使用抖音下载功能!
文章版权及转载声明
作者:99ANYc3cd6本文地址:https://www.chumoping.net/post/680.html发布于 2025-12-06
文章转载或复制请以超链接形式并注明出处初梦运营网



