2026年7月初知道TV Time 宣布关停。这个消息来得突然,但更让我措手不及的是,九年积攒的追剧记录 —— 153 部剧、1141 部电影、2655 集已看 —— 眼看就要随着服务器一起消失。
于是我花了几天时间,做了三件事:导出数据、做了一份可交互的 HTML 存档网站、做一个存档网站生成器。

一份数据,两种存档
TV Time 本身提供全量导出功能,但 Chrome 扩展 TV Time Out by Refract 可以导出JSON格式和CSV格式数据。一键运行后,它会拉取完整的用户信息、剧集进度、电影记录、勋章,以及每个条目的 TVDB/IMDb 关联 ID。
原始导出是 JSON 和 CSV 格式,但这些文件对人类阅读不太友好。我写了一个 Node.js 生成脚本 (
generate.js),把数据渲染成一组静态 HTML 页面:统计卡片、剧集表格、电影表格、勋章墙。这个版本的存档已经能看了,但说实话,挺素的 —— 深色背景 + 网格卡片,信息密度很高,视觉上没什么层次。
升级:让存档像一个真的网站
数据救下来之后,我开始琢磨:既然都做了,为什么不把它做得更像样一点儿?
海报背景
每部剧都有自己的海报,TV Time 的 API 返回的 TVDB ID 可以用来关联 TMDB 的海报图片。我写了个爬虫把 153 部剧 + 1141 部电影的海报 URL 全抓了下来,存成一个 JS 文件。页面加载时随机选一张作为全屏背景,搭配毛玻璃效果,视觉层次一下就出来了。
主题色系统
纯随机海报太噪了,所以加了一套主题色:Deep Purple、Midnight、Forest、Wine、Space 等 8 种渐变色。有趣的是最开始主题色和海报背景是互斥的 —— 点主题就覆盖海报,点海报就覆盖主题。后来改了逻辑:主题色只作用于卡片背景(Card Opacity),海报保留为全屏背景。这样两者各司其职,互不干扰。
自定义面板
藏在页面右上角的齿轮图标里,包含了:
- 主题色切换(8 色)
- 海报模糊 + 叠加层透明度
- 卡片透明度、模糊、边框开关
- 随机海报按钮
- 一键重置
全部设置存入
localStorage,下次打开自动恢复。这个面板几乎是手写 DOM 拼出来的,没有框架,挺有意思。评论页面
导出数据里还包括了 TV Time 平台上给每部剧写的短评。虽然数据不多,但好歹是九年下来的碎碎念,值得单独放一页。
部署
所有文件都是纯静态的 —— HTML + CSS + JS + JSON,没有后端,没有数据库。随便找个静态托管就能跑。
最终部署到了 tvtime.zhcn.xyz(Cloudflare Pages,国内也访问正常)。
如果没用 Cloudflare Pages,直接打个 zip 扔到任何 Web 服务器上也能跑。
数值回顾
- 153 部剧,2653 集常规剧集 + 2 集特别篇,6626 集总量(40% 看完)
- 1141 部电影,1042 部已看(91%),1 部收藏
- 7 部收藏剧集
- 34 枚勋章
poster_bg.js:约 1300 张海报 URL
- 整个站点:纯静态,零运行时依赖
技术备忘
项目 | 方式 |
数据导出 | Chrome 扩展 TV Time Out by Refract |
海报源 | TMDB API + TVDB ID 关联 |
静态生成 | 手写 Node.js 脚本 |
样式 | 纯 CSS(毛玻璃、flex/grid、媒体查询) |
交互 | 原生 JavaScript(无框架) |
部署 | Cloudflare Pages + 国内 CDN |
备份 | GitHub + 本地 zip 存档 |
写在最后
TV Time 的关闭让很多人感到惋惜,但数据本身不应该因为服务的关停而消失。
这份存档不仅是为了回顾自己看过什么,也是给未来可能的数据迁移留一条后路 —— 所有数据都在本地,随时可以二次处理。
如果你也在 TV Time 上留下了大量追剧记录,建议趁关停前用 TV Time Out 导出,做个属于你自己的存档。
官方导出地址:
https://gdpr.tvtime.com/gdpr/self-service
TV Time Out by Refract:
https://chromewebstore.google.com/detail/tv-time-out-by-refract/pmejpdpjbkjklfceogdkolmgclldogbi
- 作者:嘻咦啊呀
- 链接:https://zhcn.xyz/article/tv-time-is-closing-my-data-archive-project
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章


![[转载]iOS 定位修改 · 小白保姆级教程(Shadowrocket 小火箭) Lazy loaded image](https://www.notion.so/images/page-cover/woodcuts_2.jpg)




