单篇 · 观看播放历史恢复

周二凌晨一点,我把一台旧平板上恢复的 214 条播放记录导出成 CSV,才发现时间戳全错位了

不是数据丢了,是它被重新排了序。这篇把整个排查过程写清楚:缓存、本地存储、账号同步三条线索,各自的优先级和陷阱。

作者:江晚 · 发布于 2026-03-27 · 阅读约 9 分钟

周二凌晨一点十七分,我在书桌前把一台 2021 年买的旧平板重新开机,屏幕亮起时电量只剩 4%。它已经三个月没联网,而我在这个设备上最后一次看完的是一部纪录片,片尾字幕滚到一半就自动关机了。

我打开浏览器,进入观看记录页,页面显示空白。不是加载失败,是干净得有点可疑——连一条三个月前的痕迹都没有。我先做了最笨的一件事:把浏览器版本号抄在便签上(Chrome 122.0.6261.119),然后开始找缓存目录。这个动作后来证明是整件事里唯一没走弯路的决定。

说实话,大多数「观看播放历史恢复」的教程都在教你点「同步」按钮,但我认为这类教程把因果搞反了。同步不是恢复,同步是把一台设备的当前状态覆盖到另一台设备上。如果你的目标是找回三个月前的记录,点击同步的那一刻,你其实是在主动销毁它。

先把设备断网,再谈恢复。这是我认为唯一正确的开局,也是我和多数教程分歧最大的地方。

今日精选 · 具体案例

2026-03-27 · 11 条
旧平板与键盘

旧平板电量 4% 关机前,最后一条记录停在 01:42:16

时间戳精确到秒,说明记录并非随机关机丢失,而是服务端在会话结束时没能写回。我把这行数据单独摘出来,成了后面比对同步时间的基准点。

时间戳

Chrome 的 History 数据库里根本没有这条记录

用 SQLite 打开 History 文件,播放页只留下一条跳转记录,停留时长 0 秒。这说明播放历史不在本地历史库里,而是在站点的 IndexedDB 中。参考 新奥门33249图库资料 里的存储结构说明,能省下不少试错。

本地存储
屏幕上的代码

把 IndexedDB 的 214 条记录导出,用掉了 11 分钟

我没用插件,直接在控制台写了几行遍历游标的代码。导出后按 playTime 排序,发现最早一条是 2025 年 12 月 19 日,最晚一条正是 01:42:16。数量对得上,顺序对不上。

IndexedDB

账号同步把 12 月 19 日那条压成了「今天」

原因找到了:服务端只存相对时间,客户端渲染时按本地时区重新换算。平板时区被设成了 UTC+0,而我的手机是 UTC+8,于是同一份数据在两台设备上差了整整八小时。

时区错位
数据流

同事周岚提醒我:先看 sessionStorage,再看 IndexedDB

她做过三年前端,微信语音里跟我说了一句话,我抄下来了:「恢复顺序错了,等于把证据洗了一遍。」我照着做,果然在 sessionStorage 里找到了一条 01:42:16 的镜像键。

排查顺序

《蓝色星球》第三集,片尾字幕滚了 47 秒

这是那条记录的播放内容。我特意回看了片尾,确认播放器在字幕滚到 47 秒时电量耗尽。这个细节帮我确认了一条:记录写入发生在播放结束后的回调里,而不是播放开始时。所以断点续播的数据其实藏在另一个字段。

断点续播

用 49图库苹果系统下载 里的思路核对版本号

不同客户端版本的存储键名不一样,v3 是 watch_history_v3,v4 改成了 wh.v4。改错一个字符,整段记录就「消失」了。这不是玄学,是键名变更导致读取路径断裂。

版本差异
浏览器与终端

21:05 我关掉 Wi-Fi,完成了第一次成功恢复

断网之后,客户端不再被服务端的空状态覆盖,本地 214 条记录顺利渲染。恢复的结果里,有 3 条时间显示为「1970-01-01」,那是字段缺失的典型症状,需要手动补时区偏移。

断网操作

浏览器跳转层会再写一次记录,必须拦截

我注意到每次从列表页点进播放页,都会额外生成一条 0 秒记录。这类噪音在恢复后会让统计失真。具体机制可以看 qq浏览器看视频跳转网页 的分析,讲得很细。

跳转链

把 214 条按页面标题去重,剩 189 条

重复项全部来自同一部片的不同集数,标题里带了「第 N 集」但集数被截断。做数据清洗时我用了一个笨办法:保留时间最晚的一条,其余归入子表。这一步花了 38 分钟,比写导出脚本还久。

去重清洗

补时区那一步最容易被人跳过。我的做法是把 CSV 里所有时间统一减 8 小时,再用 UTC+8 渲染,结果与手机端完全一致。这个动作没有技术含量,但它是唯一能让两台设备「看见同一段历史」的办法。另一个容易忽略的点是:客户端缓存有容量上限,我的平板在记录数超过 200 条后开始淘汰最旧条目,这意味着你越晚恢复,能拿回的越少。

关于数据来源的核对,我参照了 正版49图库资料图 里关于字段完整性的检查清单,逐项比对后确认了三条 1970 年异常记录的成因。真正让我意外的是:这些记录并没有被删除,它们一直在,只是被一次错误的同步和一小时的时区差藏了起来。

如果你让我给出唯一一条建议,那就是:在点击任何「恢复」按钮之前,先把网络关掉。这不是谨慎,这是我用一整个凌晨换来的结论。

关于我

我是江晚,做前端数据可观测性相关的工作,白天看日志,晚上整理别人的日志。

这个站是我从 2024 年冬天开始写的,起初只是为了给自己记一份「播放历史为什么又没了」的排查笔记,写到第 30 篇之后发现,来读的人比我想的多。

我坚持每条结论都附上设备、版本号和时间戳,因为这些细节决定别人能不能复现。写得不快,但尽量不出错。

如果你也在半夜面对一份空白的历史记录页,希望这里至少能帮你少走一个弯路。

今天看到的一句话

「历史不是被删除的,是被覆盖的。删除要权限,覆盖不需要。」
—— 周岚,2026 年 3 月 24 日微信语音,原话记录于我的排查便签第 7 页