TikCapture – 录制TikTok直播

Created at a month ago
Updated at a month ago
在TikTok播放器控件中添加"录制直播"按钮,自动填写用户名并跳转至TikCapture.live。
Total Installs
122
Today's New
+2
User Rating
- / 5.0 (0)
Current Version
1.0.1

该脚本专为ScriptCat浏览器扩展设计,是一个自定义脚本。它可在所有TikTok直播页面上自动运行,无需手动干预。支持tiktok.com/@用户名/live和tiktok.com/live格式的URL,涵盖TikTok直播功能的所有主要入口。脚本在页面加载后立即启动,不干扰TikTok的正常运行,不修改现有元素,仅以非侵入式方式添加新的交互控件。
工作原理: 当用户访问TikTok直播页面时,脚本会深度解析页面DOM结构,以定位TikTok原生播放器底部控制栏。由于TikTok页面结构随版本更新而变化,脚本采用多重选择策略,通过data-e2e属性依次查找音量图标、全屏图标和播放器设置按钮等已知元素。一旦识别到某个元素,脚本便获取其父容器作为注入目标。这种方式使脚本对TikTok界面局部修改具有一定容错能力——即使某个元素缺失,也可通过备用选择器找到正确位置。定位到容器后,脚本在控制栏顶部插入一个红色按钮,文字为"录制直播",使其在视觉上与TikTok播放器深色界面形成强烈对比,辨识度高。
点击行为: 用户点击按钮后,脚本立即通过正则表达式解析浏览器地址栏中的URL,精确提取当前TikTok直播页面对应的用户名。提取成功后,脚本构建一个完整的重定向链接,指向您可以免费录制TikTok直播的网站,并以?u=@用户名的格式将用户名作为查询参数附加到URL末尾。这样,当用户到达目标页面时,直播账号信息已预先填写,无需手动输入,大幅简化操作流程。若因特殊原因无法从URL中提取有效用户名(例如用户通过不含用户名路径的通用直播链接访问页面),脚本将以当前页面完整URL作为备用参数传递,确保在任何情况下重定向均能正常工作。出于浏览器安全考虑,目标页面始终在新标签页中打开,并附带noopener属性,以防止目标页面通过window.opener访问原页面上下文。
单页应用的导航处理
TikTok是典型的单页应用(SPA),其内部导航和内容切换完全依赖JavaScript动态渲染,浏览器不会进行完整的页面重载。因此,当用户在TikTok上从一个直播切换到另一个直播,或离开后返回直播页面时,脚本必须能够检测到这一变化并作出相应响应。为此,脚本通过重新定义原生history.pushState方法拦截所有历史记录写入操作,并监听popstate事件以捕获浏览器的前进/后退导航行为。检测到URL变化时,脚本首先移除已注入的按钮,以避免新页面出现重复或残留的控件,随后等待1.5秒,确保新TikTok页面的内容和控件完全渲染完毕,再重新启动注入流程。
健壮的注入机制
TikTok页面的渲染速度受网络条件、设备性能和内容复杂度等多种因素影响,播放器控件并不总是在页面加载后立即出现在DOM中。为应对这种不确定性,脚本在首次注入尝试失败后不会立即停止,而是通过MutationObserver接口持续监控整个页面DOM树。每当有节点被添加或删除时,观察器便触发新一轮注入尝试,检查播放器控件是否已就绪。