Obsidian Media DB 插件
一个可以查询多个 API 以获取电影、剧集、动漫、漫画、游戏、音乐和维基文章信息,并将其导入到你的 Obsidian 库中的插件。
功能
按标题搜索
通过名称在多个 API 中搜索电影、剧集、动漫、游戏、音乐发行或维基文章。
按 ID 搜索
允许你使用各 API 特有的 ID 进行搜索。有关此功能的具体信息可在各个 API 的描述中找到。
模板
该插件允许你设置一个模板笔记,该模板会被添加到由此插件创建的任何笔记的末尾。
插件还提供简单的"模板标签"。例如,如果模板包含 {{ title }}
,它将被替换为电影、节目或游戏的标题。
请注意,"模板标签"由两个大括号包围,括号内的空格很重要。
对于数组,有两种特殊的显示方式。
- 使用
{{ LIST:variable_name }}
将会得到- 元素 1 - 元素 2 - 元素 3 - ...
- 使用
{{ ENUM:variable_name }}
将会得到元素 1, 元素 2, 元素 3, ...
可以在模板标签中使用的可用变量与笔记元数据中的变量相同。
我还在这里发布了我自己的模板。
元数据字段自定义
允许你通过映射重命名此插件生成的元数据字段。
映射必须遵循以下语法 [原始属性名] -> [新属性名]
。
多个映射通过换行符分隔。
例如:
title -> name
year -> releaseYear
批量导入
该插件允许你导入预先存在的媒体集合并将它们升级为 Media DB 条目。
先决条件
预先存在的媒体笔记必须位于你的 Obsidian 库中的一个文件夹内。
为了让插件能够查询它们,它们需要一个元数据字段作为搜索媒体的标题。
这可以通过使用 csv
导入插件来导入 Obsidian 外部的现有列表来实现。
导入
要开始导入过程,右键点击文件夹并选择 将文件夹导入为 Media DB 条目
选项。
然后指定要搜索的 API,是否将当前笔记内容和元数据附加到 Media DB 条目中,以及包含媒体标题的元数据字段名称。
然后插件将遍历文件夹中的每个文件,并提示你从搜索结果中选择。
导入后
在所有文件导入完成或导入被取消后,你将在插件设置中指定的文件夹中找到新条目以及包含任何错误或跳过/取消的文件的错误报告。
如何安装
该插件现已发布,可以直接通过 Obsidian 的插件安装器安装。
或者,你可以手动从 GitHub 上的最新发布版本下载 zip 压缩包。
下载后,将压缩包解压到你的 Obsidian 库中的 .obsidian/plugins
文件夹中。
文件夹结构应如下所示:
[你的 Obsidian 库路径]
|_ .obsidian
|_ plugins
|_ obsidian-media-db-plugin
|_ main.js
|_ manifest.json
|_ styles.css
如何使用
(图片即将添加)
安装此插件后,你会在左侧边栏中看到一个数据库图标。
使用此图标或 添加新的 Media DB 条目
命令时,会打开一个弹窗。
在这里你可以输入想要搜索的标题,然后选择要搜索的 API。
点击搜索后,会打开一个新的弹窗,提示你从搜索结果中选择。
现在你选择想要的结果,插件就会施展魔法,在你的 Obsidian 库中创建一个新的笔记,其中包含所选搜索结果的元数据。
当前支持的媒体类型
- 电影(包括特别节目)
- 剧集(包括 OVA)
- 游戏
- 音乐发行
- 维基文章
- 图书
当前支持的 API:
名称 | 描述 | 支持的格式 | 认证 | 速率限制 | SFW 过滤支持 |
---|---|---|---|---|---|
Jikan | Jikan 是一个使用 My Anime List 的 API,提供动漫元数据。 | 剧集、电影、特别节目、OVA、漫画、韩漫、小说 | 否 | 每分钟 60 次,每秒 3 次 | 是 |
OMDb | OMDb 是一个提供电影、剧集和游戏元数据的 API。 | 剧集、电影、游戏 | 是,你可以在这里获取免费密钥 | 每天 1000 次 | 否 |
MusicBrainz | MusicBrainz 是一个提供音乐发行信息的 API。 | 音乐发行 | 否 | 每秒 50 次 | 否 |
Wikipedia | Wikipedia API 允许访问所有 Wikipedia 文章。 | 维基文章 | 否 | 无 | 否 |
Steam | Steam API 提供所有 Steam 游戏的信息。 | 游戏 | 否 | 每天 10000 次 | 否 |
Open Library | OpenLibrary API 提供图书元数据 | 图书 | 否 | 不使用 CoverID 或 OLID 时,封面访问限制为每 5 分钟每 IP 最多 100 次请求。此插件使用 OLID,因此应该没有速率限制。 | 否 |
Moby Games | Moby Games API 提供所有平台游戏的元数据 | 游戏 | 是,需要在这里注册账户 | API 请求限制为每小时 360 次(每十秒一次)。此外,请求频率不应超过每秒一次。 | 否 |
注意事项
- Jikan
- 有时 API 响应很慢,这是正常的
- 你需要使用动漫在 My Anime List 上的标题,这在大多数情况下是日语标题
- 例如,你需要搜索 "Kimetsu no Yaiba" 而不是 "Demon Slayer"
按 ID 搜索
- Jikan
- 你需要的ID是该动漫在My Anime List上的ID
- 你可以在URL中找到这个ID
- 例如,"境界的彼方"的URL看起来像这样
https://myanimelist.net/anime/18153/Kyoukai_no_Kanata
所以ID是18153
- 例如,"境界的彼方"的URL看起来像这样
- Jikan漫画
- 你需要的ID是该漫画在My Anime List上的ID
- 你可以在URL中找到这个ID
- 例如,"杀戮一切"的URL看起来像这样
https://myanimelist.net/manga/62887/All_You_Need_Is_Kill
所以ID是62887
- 例如,"杀戮一切"的URL看起来像这样
- OMDb
- 你需要的ID是该电影或电视剧在IMDb上的ID
- 你可以在URL中找到这个ID
- 例如,"侠盗一号"的URL看起来像这样
https://www.imdb.com/title/tt3748528/
所以ID是tt3748528
- 例如,"侠盗一号"的URL看起来像这样
- MusicBrainz
- 发行版的ID不容易获取,最好直接通过标题搜索
- 维基百科
- 这里是找到文章维基数据ID的指南
- Steam
- 你可以在URL中找到这个ID
- 例如,"异星工厂"的URL看起来像这样
https://store.steampowered.com/app/427520/Factorio/
所以ID是427520
- 例如,"异星工厂"的URL看起来像这样
- 你可以在URL中找到这个ID
- 开放图书馆
- 你需要的ID是"作品"ID而不是"图书"ID,它需要以
/works/
开头。你可以在URL中找到这个ID- 例如,"了不起的狐狸爸爸"的URL看起来像这样
https://openlibrary.org/works/OL45804W
所以ID是/works/OL45804W
- 这个URL位于页面顶部标题上方,见
An edition of Fantastic Mr Fox (1970)
- 例如,"了不起的狐狸爸爸"的URL看起来像这样
- 你需要的ID是"作品"ID而不是"图书"ID,它需要以
- Moby Games
- 你可以在URL中找到这个ID
- 例如,"生化奇兵2"的URL看起来像这样
https://www.mobygames.com/game/45089/bioshock-2/
所以ID是45089
- 例如,"生化奇兵2"的URL看起来像这样
- 你可以在URL中找到这个ID
问题、意外行为或改进建议?
欢迎在GitHub上提出问题。
贡献
感谢你想为这个项目做出贡献。
我们随时欢迎贡献。如果你有想法,可以在问题标签下提出功能请求,甚至创建一个拉取请求。
致谢
感谢以下项目:
- https://github.com/anpigon/obsidian-book-search-plugin 提供了一些灵感和制作这个插件的想法
- https://github.com/liamcain/obsidian-periodic-notes 提供了
Suggest.ts
和FolderSuggest.ts
的99%内容