把 YouTube 观看习惯转化成一个“自我学习的音乐大脑”
分享一个把 YouTube 历史变成个性化音乐库的实操方案,这本质上是一个从数据采集到特征工程的完整工作流。
二、数据传输与存储(后端存证)
使用 FastAPI 搭建轻量级后端,接收插件传来的 JSON 数据包。
这个项目的难点不在于写代码,而在于如何定义“喜欢”。是完整看完就算喜欢?还是反复听某一段才算?这种基于行为数据的实战探索,比直接调用某个大模型 API 要有趣得多。
下一篇
TraceGate实战:别被AI Agent的Demo结果给骗了 →
从零构建 Auto-DJ 的技术链路
要实现这个系统,不能只靠简单的 API 调用,得构建一套完整的闭环:
一、数据采集层(前端侦查)
需要写一个浏览器插件(Content Script),实时监听 YouTube 播放页面的 video 标签。关键在于捕捉 timeupdate、pause 和 seeked 事件。
- 核心逻辑: 记录用户在视频中的具体停留片段。比如一首歌 210 秒,用户在 0-41 秒跳过了,但在副歌部分反复循环,这个“跳过”和“回溯”的行为比简单的“观看记录”包含多得多的情感权重。
二、数据传输与存储(后端存证)
使用 FastAPI 搭建轻量级后端,接收插件传来的 JSON 数据包。
{
"video_id": "xxxx",
"title": "Song Name",
"watch_segments": [[0, 41], [132, 222]],
"timestamp": "2023-10-27T21:47:00Z",
"session_id": "sess_001"
}数据库建议直接上 PostgreSQL + pgvector。原始事件必须完整保留,因为后续调整模型权重时,需要重新计算所有原始信号。三、特征加工与分析(离线处理)
这是最硬核的部分,每天定时跑一次 Pipeline:
- 分类过滤: 剔除掉非音乐类视频。
- 元数据解析: 通过标题解析和外部 API 补全歌曲真实信息。
- 行为打分: 将观看百分比、重复播放次数、时间段(比如深夜 11 点听 Synthwave)转化为隐式评分。
- 向量化: 将音频特征转化为 Embedding 存入向量库,实现真正的“听感相似”推荐,而非简单的标签匹配。
这个项目的难点不在于写代码,而在于如何定义“喜欢”。是完整看完就算喜欢?还是反复听某一段才算?这种基于行为数据的实战探索,比直接调用某个大模型 API 要有趣得多。