# ListenBrainz

**URL:** https://meta.discourse.org/t/listenbrainz/254769
**Category:** Plugin
**Created:** [2023年二月10日 14:32 UTC](https://meta.discourse.org/t/listenbrainz/254769 "2023-02-10T14:32:20Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![phw](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/phw/32/285652_2.png) [@phw](https://meta.discourse.org/u/phw)
#### Post date: [2023年二月10日 14:32 UTC](https://meta.discourse.org/t/listenbrainz/254769/1 "2023-02-10T14:32:20Z")

</div>

||||\n-|-|-|\n:information\_source: | **摘要** | Discourse 插件，用于在其个人资料中显示用户的 ListenBrainz 收听记录\n:hammer\_and\_wrench: | **仓库链接** | \u003chttps://git.sr.ht/~phw/discourse-listenbrainz\u003e\n:open\_book: | **安装指南** | [如何在 Discourse 中安装插件](https://meta.discourse.org/t/install-plugins-in-discourse/19157)\n\n\u003cbr\u003e \n\n### 特性\n \n此 [Discourse](https://www.discourse.org/) 插件允许用户在其个人资料中展示他们从 [ListenBrainz](https://listenbrainz.org/) 收听的最新记录。用户可以选择显示他们最近的收听记录或其 ListenBrainz 个人资料的总体统计信息。\n\nListenBrainz 是一个在线服务，用于跟踪您收听的音乐，并提供有关您的收听习惯和推荐的见解。该项目完全开源，并以开放数据形式发布所有数据。\n\n此插件目前在 MusicBrainz 社区论坛中使用，但对于其他与音乐相关的社区也可能很有趣。\n\n

 ![grafik](https://global.discourse-cdn.com/meta/original/4X/5/c/e/5cee1f7774e9b05dc522d6b5d56184be4d5c6fea.png)\n\n \n### 配置\n \n#### 管理员设置\n\n您可以在 Discourse 管理界面中配置 ListenBrainz 插件。可用的选项如下：\n\n- **listenbrainz enable** : 允许用户在其个人资料中显示其 ListenBrainz 状态。默认：已启用。\n\n- **listenbrainz username matches discourse** : 如果 Discourse 用户的用户名通常与其 ListenBrainz 用户名匹配，则启用此选项。用户仍然可以配置不同的 ListenBrainz 用户名，但它将预先填充其 Discourse 用户名。此选项主要用于 [MetaBrainz 社区论坛](https://community.metabrainz.org)。默认：已禁用。\n\n- **listenbrainz poster icon** : 允许用户在其每篇帖子的用户名旁边显示指向其 ListenBrainz 个人资料的链接。默认：已启用。\n\n- **listenbrainz\_onebox\_enabled** : 为指向 ListenBrainz 个人资料页面的 URL 启用 Onebox 支持。默认：已启用。\n\n- **listenbrainz\_onebox\_range** : ListenBrainz Onebox 的统计时间范围。默认：本月。\n\n#### 用户偏好设置\n\n每个用户都可以控制其 ListenBrainz 活动是否显示在其个人资料中。用户可以在其个人资料偏好设置中配置此项。可用的偏好设置如下。\n\n- **Show ListenBrainz information in my user profile** : 启用后，将在用户的用户卡片和用户个人资料中显示一个包含用户 ListenBrainz 个人资料详细信息的信息框。信息框的内容可以通过下面的选项进行配置。默认：已禁用。\n\n- **ListenBrainz username** : 用户的 ListenBrainz 用户名。必须设置此项才能显示用户的 ListenBrainz 详细信息。如果网站为 **listenbrainz username matches discourse** 启用了，则此项默认为 Discourse 用户名，否则默认为空。\n\n- **Show a link to my ListenBrainz profile next to my Discourse username** : 启用后，将在用户每篇帖子的用户名旁边显示指向用户 ListenBrainz 个人资料的链接。仅当网站启用了 **listenbrainz poster icon** 时，此选项才可用。默认：已禁用。\n\n- **Display** : 配置在 ListenBrainz 信息框中显示的内容。可用的选项如下：\n\n - **Most recent listen** : 显示用户当前正在播放的曲目或最近播放的曲目。\n\n - **User profile statistics** : 显示用户 ListenBrainz 个人资料的总体统计信息，例如收听次数、最常播放的曲目以及最常播放的专辑封面。\n\n - **Most recent listen with fallback to user profile statistics** : 尝试显示最近的收听记录，如果没有则回退显示用户个人资料统计信息。这是默认设置。\n\n- **Time range** : 选择生成用户个人资料统计信息的范围。默认：本月。\n\n- **Fallback to larger time range if there are no listens in the selected range** : 如果启用，当所选范围内没有收听记录时，个人资料统计信息视图将自动回退到更大的时间范围。例如，如果您选择了“本周”，但本周没有记录收听，则统计信息将回退显示“本月”。默认：已启用。\n\n- **Show recent listen not older than** : 如果用户上次播放的曲目早于给定时间，则不显示。默认：24 小时。\n\n \n### 待办事项\n\n请参阅官方 [问题跟踪器](https://todo.sr.ht/~phw/discourse-listenbrainz) 以了解未解决的问题和计划中的功能。

---

<div class="post-metadata">

### Author: ![danielabc](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@danielabc](https://meta.discourse.org/u/danielabc)
#### Post date: [2023年三月11日 21:06 UTC](https://meta.discourse.org/t/listenbrainz/254769/2 "2023-03-11T21:06:30Z")

</div>

Spotify上有什么类似的东西吗？

---

<div class="post-metadata">

### Author: ![phw](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/phw/32/285652_2.png) [@phw](https://meta.discourse.org/u/phw)
#### Post date: [2023年三月14日 10:55 UTC](https://meta.discourse.org/t/listenbrainz/254769/3 "2023-03-14T10:55:01Z")

</div>

据我所知没有。如果有人想这样做，ListenBrainz 可以作为构建的基础。

---

<div class="post-metadata">

### Author: ![danielabc](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@danielabc](https://meta.discourse.org/u/danielabc)
#### Post date: [2023年三月14日 11:35 UTC](https://meta.discourse.org/t/listenbrainz/254769/4 "2023-03-14T11:35:29Z")

</div>

这太难了吗？我想知道我能不能做到？

---

<div class="post-metadata">

### Author: ![phw](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/phw/32/285652_2.png) [@phw](https://meta.discourse.org/u/phw)
#### Post date: [2023年五月14日 09:38 UTC](https://meta.discourse.org/t/listenbrainz/254769/5 "2023-05-14T09:38:12Z")

</div>

抱歉，我错过了你之前的问题。这有多难，取决于你对开发 Web 应用程序的经验，特别是如果你有 Ember.js 和 Ruby on Rails 框架的经验。我个人在 Web 开发方面有相当广泛的经验，但没有 Ember.js 的经验。因此，在开发插件时，这通常是最耗时的部分，因为我必须弄清楚在这个框架中如何做我想做的事情。

无论如何，第一步是在本地设置 discourse 进行开发，并尝试在那里运行 LB 插件。我把我个人的笔记写在了 [https://git.sr.ht/~phw/discourse-listenbrainz/tree/develop/item/CONTRIBUTE.md](https://git.sr.ht/~phw/discourse-listenbrainz/tree/develop/item/CONTRIBUTE.md) （但它非常简短）。一旦这能正常工作，你就可以开始尝试修改代码部分会发生什么。

但说了这么多，我个人对做 Spotify 的事情毫无兴趣。如果你想解决这个问题，并且对我的插件的结构和工作方式有任何疑问，我可以提供帮助，但所有与 Spotify API 相关的内容以及如何使用它，你需要从 Spotify 的文档中获取。

---

<div class="post-metadata">

### Author: ![Kartoon](https://avatars.discourse-cdn.com/v4/letter/k/e36b37/32.png) [@Kartoon](https://meta.discourse.org/u/Kartoon)
#### Post date: [2023年五月21日 19:12 UTC](https://meta.discourse.org/t/listenbrainz/254769/6 "2023-05-21T19:12:34Z")

</div>

鉴于您制作了这个（哈哈），您应该对 ListenBrainz 有些经验，它是如何与 last.fm 一起工作的？我个人从未使用过这两个服务，但我认为这个插件的功能很棒，不过听起来我的大多数用户（或者可能没有一个）使用 ListenBrainz，但有多个用户已经在使用 last.fm。我查了一下，看到您可以从 lastfm 导入到 ListenBrainz，但我假设这不像 lastfm 连接到 Spotify 等那样是主动连接（我猜 ListenBrainz 也是这样做的？）。

基本上，您是否知道他们注册了 ListenBrainz，并且我安装了这个插件，是否有可能将 Spotify（或其他）\> lastfm \> ListenBrainz 链接起来，从而使这个插件能够工作？我猜不行，因为它看起来更像是您可以导入您的 lastfm 数据，但它并没有主动监控。

---

<div class="post-metadata">

### Author: ![phw](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/phw/32/285652_2.png) [@phw](https://meta.discourse.org/u/phw)
#### Post date: [2023年五月22日 05:25 UTC](https://meta.discourse.org/t/listenbrainz/254769/7 "2023-05-22T05:25:03Z")

</div>

> [@Kartoon](#):
>
> 我猜不是，因为它更像是你可以导入你的 lastfm 数据，但它并没有主动监控。

是的，就是这样。你可以重复导入，它只会导入新数据。但这主要是为了从 last.fm 迁移到 ListenBrainz，而不是用于持续同步。

不过，ListenBrainz 可以直接与 Spotify 连接，并记录那里的所有收听记录。

除此之外，这个插件当然只有在用户实际使用 LB 时才有意义。

为 last.fm 或如上所述的 Spotify 制作类似的东西可能会非常有趣。出于各种原因，我自己没有兴趣在这方面投入任何工作，但我邀请所有感兴趣的人以我的插件为基础来制作这样的插件。

> [@Kartoon](#):
>
> 我猜你对 ListenBrainz 有些经验，因为你做了这个，哈哈，

是的，我想是的。我不是开发者之一，但我已经做了多个 ListenBrainz 集成，并且自己也非常积极地使用它。此外，我以某种方式参与过多个与 MusicBrainz 相关的项目，主要是 MusicBrainz Picard。
