ListenBrainz

:information_source: 요약 사용자의 ListenBrainz 청취 내역을 프로필에 표시하는 Discourse 플러그인
:hammer_and_wrench: 저장소 링크 https://git.sr.ht/~phw/discourse-listenbrainz
:open_book: 설치 가이드 Discourse에 플러그인 설치 방법

기능

이 Discourse 플러그인은 사용자가 ListenBrainz의 최근 청취 내역을 사용자 프로필에 보여줄 수 있게 합니다. 사용자는 가장 최근 청취 내역을 표시하거나 ListenBrainz 프로필에 대한 일반적인 통계를 표시하도록 선택할 수 있습니다.

ListenBrainz는 사용자가 듣는 음악을 추적하고 청취 습관에 대한 통찰력과 추천을 제공하는 온라인 서비스입니다. 이 프로젝트는 완전히 오픈소스이며 모든 데이터를 오픈 데이터로 공개합니다.

이 플러그인은 현재 MusicBrainz 커뮤니티 포럼에서 사용되고 있지만, 다른 음악 관련 커뮤니티에서도 유용할 수 있습니다.

설정

관리자 설정

Discourse 관리자 인터페이스에서 ListenBrainz 플러그인을 설정할 수 있습니다. 다음 옵션이 사용할 수 있습니다:

  • listenbrainz enable: 사용자의 프로필에 ListenBrainz 상태를 표시하도록 허용합니다. 기본값: 활성화됨.

  • listenbrainz username matches discourse: Discourse 사용자의 사용자 이름이 일반적으로 ListenBrainz 사용자 이름과 일치하는 경우 이 옵션을 활성화하세요. 사용자는 여전히 다른 ListenBrainz 사용자 이름을 설정할 수 있지만, Discourse 사용자 이름이 기본값으로 입력됩니다. 이 옵션은 주로 MetaBrainz 커뮤니티 포럼에서 사용하도록 의도되었습니다. 기본값: 비활성화됨.

  • listenbrainz poster icon: 각 게시물의 사용자 이름 옆에 ListenBrainz 프로필 링크를 표시하도록 허용합니다. 기본값: 활성화됨.

  • listenbrainz_onebox_enabled: ListenBrainz 프로필 페이지 URL에 대한 Onebox 지원을 활성화합니다. 기본값: 활성화됨.

  • listenbrainz_onebox_range: ListenBrainz Onebox의 통계 시간 범위입니다. 기본값: 이번 달.

사용자 설정

각 사용자는 자신의 ListenBrainz 활동이 프로필에 표시되는지 여부를 직접 관리합니다. 사용자는 프로필 설정에서 이를 구성할 수 있습니다. 다음 설정이 사용할 수 있습니다.

  • 내 사용자 프로필에 ListenBrainz 정보 표시: 활성화되면 사용자의 ListenBrainz 프로필 세부 정보가 포함된 정보 상자가 사용자의 사용자 카드 및 사용자 프로필에 표시됩니다. 정보 상자의 내용은 아래 옵션으로 구성할 수 있습니다. 기본값: 비활성화됨.

  • ListenBrainz 사용자 이름: 사용자의 ListenBrainz 사용자 이름입니다. 사용자의 ListenBrainz 세부 정보가 표시되려면 설정해야 합니다. 사이트에서 listenbrainz username matches discourse가 활성화되어 있으면 이 값은 Discourse 사용자 이름이 기본값이 되며, 그렇지 않으면 기본값은 비어 있습니다.

  • 내 Discourse 사용자 이름 옆에 내 ListenBrainz 프로필 링크 표시: 활성화되면 각 게시물의 사용자 이름 옆에 사용자의 ListenBrainz 프로필 링크가 표시됩니다. 이 옵션은 사이트에서 listenbrainz poster icon이 활성화된 경우에만 사용할 수 있습니다. 기본값: 비활성화됨.

  • 표시: ListenBrainz 정보 상자에 표시될 내용을 구성합니다. 다음 옵션이 사용할 수 있습니다:

    • 최근 청취: 사용자가 현재 재생 중인 트랙 또는 가장 최근에 재생된 트랙을 표시합니다.

    • 사용자 프로필 통계: 사용자의 ListenBrainz 프로필에 대한 일반 통계(청취 횟수, 가장 많이 재생된 트랙, 가장 많이 재생된 릴리스의 커버 아트 등)를 표시합니다.

    • 최근 청취 (없을 경우 사용자 프로필 통계로 대체): 최근 청취 내역을 표시하려 하지만, 사용 가능한 내역이 없으면 사용자 프로필 통계를 표시하도록 대체합니다. 이것이 기본 설정입니다.

  • 시간 범위: 사용자 프로필 통계를 생성할 시간 범위를 선택합니다. 기본값: 이번 달.

  • 선택한 범위에 청취 내역이 없으면 더 큰 시간 범위로 대체: 활성화되면 선택한 시간 범위에 청취 내역이 없으면 프로필 통계 뷰가 자동으로 더 큰 시간 범위로 대체됩니다. 예를 들어 "이번 주"를 선택했지만 현재 주에 기록된 청취 내역이 없으면 통계는 "이번 달"을 표시하도록 대체됩니다. 기본값: 활성화됨.

  • 이 시간보다 오래된 최근 청취는 표시하지 않음: 주어진 시간보다 오래된 경우 사용자의 마지막 재생 트랙을 표시하지 않습니다. 기본값: 24시간.

TODO

미해결 이슈와 계획된 기능은 공식 이슈 트래커를 참조하세요.

7개의 좋아요

Spotify에서 비슷한 것을 보여주는 건 없나요?

제가 아는 한 그런 건 없습니다. 누군가 이걸 하려는 경우, ListenBrainz를 기반으로 삼을 수 있을 것입니다.

하기가 너무 어려울까요? 제가 할 수 있을지 궁금해요.

죄송합니다, 여기에서 질문을 놓쳤네요. 이 작업이 얼마나 어려울지는 웹 애플리케이션 개발에 대한 경험의 양, 그리고 더 구체적으로는 Ember.js와 Ruby on Rails 프레임워크에 대한 경험이 얼마나 되는지에 따라 달라집니다. 저는 개인적으로 웹 개발에 대한 폭넓은 경험을 가지고 있지만, Ember.js에 대한 추가 경험은 없었습니다. 그래서 이 플러그인을 개발할 때 제가 원하는 작업을 이 프레임워크에서 어떻게 수행해야 하는지 파악하는 것이 가장 시간이 많이 걸리는 부분이었습니다.

어쨌든, 첫 번째 단계는 개발을 위해 로컬 discourse를 설정하고 LB 플러그인이在那里에서 정상적으로 작동하는지 확인하는 것입니다. 무엇을 해야 하는지에 대한 제 개인적인 메모를 https://git.sr.ht/~phw/discourse-listenbrainz/tree/develop/item/CONTRIBUTE.md 에 작성해 두었습니다(다만 매우 간략합니다). 이 부분이 작동하게 되면 코드의 일부 부분을 조정했을 때 어떤 일이 발생하는지 실험을 시작할 수 있습니다.

그러나 이 모든 것을 언급하고 나서, 저는 개인적으로 Spotify 관련 작업을 수행할 의사가 전혀 없습니다. 이 작업을 진행하려고 하고 플러그인의 구조와 작동 방식에 대해 질문이 있다면 도움을 드릴 수 있지만, Spotify API와 그 사용법에 관한 것은 Spotify의 문서를 통해 직접 확인하셔야 합니다.

1개의 좋아요

이 플러그인을 만들었으니 ListenBrainz에 대해 어느 정도 경험이 있으시겠네요 ㅋㅋ. 이 플러그인이 last.fm와 어떻게 연동되나요? 개인적으로는 두 서비스 모두 사용해본 적이 없지만, 이 플러그인의 기능은 꽤 흥미로워 보입니다. 다만 제 사용자 중 대부분(혹은 아무도)이 ListenBrainz를 사용하지 않고, 이미 여러 명이 last.fm를 사용 중인 것 같습니다. 조사해보니 last.fm에서 ListenBrainz로 데이터를 가져올 수 있다는 것을 확인했지만, last.fm가 Spotify와 연동되는 것처럼 활성 연결은 아닐 것 같고, ListenBrainz도 아마 같은 방식으로 작동하는 것 같습니다.

결국, 사용자가 ListenBrainz에 가입하고 제가 이 플러그인을 설치한 경우, Spotify(또는 기타 서비스) > last.fm > ListenBrainz와 같은 체인 구성이 가능하여 이 플러그인이 정상 작동할 수 있는지 아실까요? last.fm 데이터를 가져올 수는 있지만 실시간으로 모니터링하는 것은 아닌 것 같으니, 불가능할 것 같다는 추측을 하고 있습니다.

네, 정확합니다. 가져오기를 반복할 수 있으며, 이때 새로운 데이터만 가져옵니다. 하지만 이 기능은 Last.fm에서 ListenBrainz로의 이동을 위한 수단으로 더 적합하며, 지속적인 동기화를 위한 것이 아닙니다.

다만, ListenBrainz는 Spotify과 직접 연결할 수 있으며, 거기서 재생된 모든 내용을 기록합니다.

그 외 이 플러그인은 사용자가 실제로 LB를 사용할 때 주로 의미가 있습니다.

Last.fm이나, 위에서 제안된 것처럼 Spotify에 대한 유사한 기능이 있다면 꽤 흥미로울 수 있습니다. 여러 가지 이유로 저는 이 부분에 작업을 투입할 관심이 없지만, 관심 있는 모든 분들이 제 플러그인을 기반으로 이러한 플러그인을 만들어 보시기를 권합니다.

아마도 그렇습니다, 네. 저는 개발자 중 한 명은 아니지만, 여러 ListenBrainz 통합 작업을 해본 적이 있고, 개인적으로도 매우 적극적으로 사용하고 있습니다. 또한 MusicBrainz Picard를 중심으로 여러 MusicBrainz 관련 프로젝트에도 어느 정도 관여한 바 있습니다.