北极星的博客 - 个人分享
type: channel
link: https://blog.polaris2333.top/index.php/category/%E4%B8%AA%E4%BA%BA%E5%88%86%E4%BA%AB/
items: 使用Obsidian搭建个人媒体记录库

使用Obsidian搭建个人媒体记录库
type: item
date: 2026-07-28T15:34:00+00:00
description: 使用 Obsidian 搭建个人媒体记录库实际效果：我的媒体库 - 北极星的博客我有个需求挺简单的：看过的动画、电影、书、玩过的游戏，能有个地方统一记下来，最好有个画廊视图能翻看，筛选一下"哪些还没看""哪些评分高"。如果还能自动同步到博客上，就更省事了。于是我在 Obsidian 里搭了一套媒体库系统，顺手写了个同步插件，用下来感觉还不错。这篇聊聊怎么搞的。本地媒体库本身的搭建，主要是参考了这个博主的视频和代码来的：Obsidian如何打造智能图书影视库管理系统，兼顾颜值和实用功能！_哔哩哔哩_bilibili整体思路分两块：Obsidian 本地 — 每种媒体类型一个文件夹，每条记录一个 .md 文件，配合 DataviewJS 写一个画廊概览页，支持筛选、排序、搜索、改状态。同步到博客 — 一个 Obsidian 插件，把本地媒体笔记转成 Typecho 兼容格式，上传图片，推到博客。同时生成一个和本地画廊功能一致的云端画廊页面。架构大概长这样：Obsidian 媒体库 (.md + frontmatter) │ ├─ 本地画廊（DataviewJS，可交互） │ └─ 同步插件 → REST API → Typecho 博客 ├─ 文章（每条媒体一篇） └─ 画廊页（独立页面，纯前端渲染）本地部分：在 Obsidian 里建媒体库文件组织目录结构很简单，按类型分文件夹：媒体库/ ├─ 媒体库概览.md ← 画廊页面 ├─ anime/ ← 动画 ├─ book/ ← 书籍 ├─ movie/ ← 电影 ├─ teleplay/ ← 剧集 ├─ game/ ← 游戏 └─ music/ ← 音乐每条记录是一个 markdown 文件，用 frontmatter 存元数据。以一部动画为例：--- title: 葬送的芙莉莲 type: anime score: 8.8 genre: - 奇幻 - 冒险 tags: - 治愈 - 公路片 datePublished: 2023-09-29 观看状态: 看过✅ 集数: "28" ---不同来源的笔记字段名可能不一样——比如 Douban 插件用 title，Bangumi 插件用 中文名 和 原名。画廊页的脚本做了兼容，会自动映射。画廊概览页这是整个媒体库的门面，基于 DataviewJS 写的。核心功能：筛选栏 — 顶部一排下拉菜单，可以按类型、状态、标签、评分、上映时间、季度、创建时间来筛。所有筛选条件实时生效，状态自动保存到 localStorage，下次打开还在。搜索 — 右上角的搜索框支持多关键词，会在标题、创作者、标签、描述等字段里加权匹配，还能高亮结果。排序 — 按评分、标题、日期升降序，最后一个下拉菜单搞定。卡片网格 — 每条媒体一张卡片，包含：封面图（自动从本地附件或网络 URL 加载）左上角类型图标（🎬🎮📚✨ 一眼分辨）右上角状态标签，点击可以切换（想看 → 在看 → 看过 → 搁置 → 抛弃），自动更新文件 frontmatter左下角发布日期，右下角评分标题（点击跳转到详情页）导演/作者/制作方信息anime 和剧集还会显示进度条（已看/总集数）添加新媒体顶部有个"添加媒体"按钮，点了直接调起 Douban 插件的搜索导入——输入名字就能从豆瓣拉取元数据创建笔记，不用手敲。同步部分：一键推到博客本地记着爽，但有时候想分享，或者想在手机上看。我写了个 Obsidian 插件 media-typecho-sync，配合 Typecho 后端的 RESTful 插件，实现一键同步。同步管理面板点击侧边栏的云上传图标，弹出一个管理面板：面板可以：搜索和筛选 — 按名称搜，按类型/观看状态/同步状态/公开状态筛增量同步 — 只同步本地有改动过的文件（按 mtime 判断）强制同步 — 勾选指定条目强制推送，或者全量重推预览变更 — 先看看哪些文件会被同步，确认无误再推逐条设置公开状态 — 每条媒体可以独立设为公开/隐藏/私有删除已选 — 从云端删掉已同步的文章重建画廊 — 只更新画廊页，不动文章同步过程做了什么点击同步后，插件会：测试连接 → 扫描本地媒体库 → 对比缓存，找改动上传新图片（DJB2 内容哈希去重，同一张图不会传两次）转换格式：Wiki 链接 [使用Obsidian搭建个人媒体记录库](https://blog.polaris2333.top/index.php/archives//) → 普通链接、Callout 块 → HTML、DataviewJS → 静态内容通过 REST API 创建/更新文章，附上封面、摘要、标签、分类重建云端画廊页整个过程在面板底部有实时进度，出错了也一目了然。格式转换要点Obsidian 的笔记语法和 Typech…