{"id":16838113,"url":"https://github.com/phw/foo_listenbrainz2","last_synced_at":"2025-03-22T04:31:06.455Z","repository":{"id":58625839,"uuid":"287305090","full_name":"phw/foo_listenbrainz2","owner":"phw","description":"A foobar2000 component to submit the music you listened to to ListenBrainz. ","archived":false,"fork":false,"pushed_at":"2024-12-13T07:47:10.000Z","size":193,"stargazers_count":60,"open_issues_count":9,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-01T13:04:58.135Z","etag":null,"topics":["foobar2000","foobar2000-component","listenbrainz","musicbrainz"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phw.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["phw"],"liberapay":"phw"}},"created_at":"2020-08-13T14:41:35.000Z","updated_at":"2025-02-25T14:26:13.000Z","dependencies_parsed_at":"2023-12-13T18:19:07.253Z","dependency_job_id":"fe593dd6-69e4-43be-bcdb-6a98a38a0366","html_url":"https://github.com/phw/foo_listenbrainz2","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phw%2Ffoo_listenbrainz2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phw%2Ffoo_listenbrainz2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phw%2Ffoo_listenbrainz2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phw%2Ffoo_listenbrainz2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phw","download_url":"https://codeload.github.com/phw/foo_listenbrainz2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243809865,"owners_count":20351403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["foobar2000","foobar2000-component","listenbrainz","musicbrainz"],"created_at":"2024-10-13T12:20:54.980Z","updated_at":"2025-03-22T04:31:05.954Z","avatar_url":"https://github.com/phw.png","language":"C++","funding_links":["https://github.com/sponsors/phw","https://liberapay.com/phw"],"categories":[],"sub_categories":[],"readme":"# ListenBrainz 2\n\nA foobar2000 component to submit the music you listened to to [ListenBrainz](https://listenbrainz.org) or another ListenBrainz compatible scrobble server (for example [Maloja](https://github.com/krateng/maloja)).\n\nThis component was originally written by [marc2k3](https://github.com/marc2k3/). This repository is an attempt to preserve the source code of this excellent component and hopefully to revive the development.\n\n\n## Minimum requirements\n\n`Windows 7` and [foobar2000](https://foobar2000.org) `v1.5` or later. This component is compatible with foobar2000 `v2.0`, both 32 and 64 bit.\n\n\n## Download \u0026 Installation\n\nDownload the component archive (`.fb2k-component`) from the [release page](https://github.com/phw/foo_listenbrainz2/releases). Follow the instructions [How to install a component](https://wiki.hydrogenaud.io/index.php?title=Foobar2000:How_to_install_a_component) in the Foobar2000 Wiki.\n\n\n## What is ListenBrainz?\n\nListenBrainz keeps track of music you listen to and provides you with insights into your listening habits. For details see:\n\n[https://listenbrainz.org](https://listenbrainz.org)\n\n\n## Why foo_listenbrainz2?\n\nThere is already a component with the original name here: [foo_listenbrainz](https://gitlab.com/ykBuilds/foo_listenbrainz)\n\nIn contrast to the above version foo_listenbrainz2 does not block the main thread and does not freeze the UI when submitting. Also, this version submits artist/recording [MBID](https://musicbrainz.org/doc/MusicBrainz_Identifier)s if present in your files. This makes artist/title links on your recent listens page clickable and will lead you to the respective pages on [musicbrainz.org](https://musicbrainz.org)\n\n\n## Preferences\n\nEnter your [ListenBrainz token](https://listenbrainz.org/profile) and check the other options under\n`File \u003e Preferences \u003e Tools \u003e ListenBrainz 2`.\n\n![Preferences](preferences.png)\n\nBy default the component submits to the ListenBrainz server using the endpoint `https://api.listenbrainz.org/1/submit-listens`.\n\nIf you use another ListenBrainz compatible server, also adjust the URL and use a token provided by your server. Make sure to append `/submit-listens` to the standard API URL of your server. Otherwise you will get `500` response errors. For [Maloja](https://github.com/krateng/maloja) servers the API URL is in the form of `https://{hostname}/apis/listenbrainz/1/submit-listens`.\n\nNow just listen to your music and watch the `Console` for server responses and/or check your recent listens page.\n\nFor convenience, submissions can be enabled/disabled via the main `Playback` menu. This option is only available after your token has been set. You can also configure a filter for tracks to never be submitted.\n\n\n## Submissions\n\nThe following conditions must be met for a track to be submitted:\n\n- The track must be at least 5 seconds long. Anything shorter or unknown will be ignored.\n- Like [Last.fm](https://last.fm), you must listen to at least half the track or 4 minutes - whichever comes first.\n- The submission must be enabled when the track begins AND at the time of submission during playback.\n- The track must contain `ARTIST` and `TITLE` tags as a bare minimum. Any tracks without them are silently ignored.\n\nThese additional tags are sent if present:\n\n- `ALBUM ARTIST`\n- `ALBUM`\n- `DATE`\n- `TRACKNUMBER`\n- `TOTALTRACKS`\n- `DISCNUMBER`\n- `TOTALDISCS`\n- `ISRC`\n- `MUSICBRAINZ_ARTISTID / MUSICBRAINZ ARTIST ID`\n- `MUSICBRAINZ_TRACKID / MUSICBRAINZ TRACK ID`\n- `MUSICBRAINZ_ALBUMID / MUSICBRAINZ ALBUM ID`\n- `MUSICBRAINZ_RELEASEGROUPID / MUSICBRAINZ RELEASE GROUP ID`\n- `MUSICBRAINZ_RELEASETRACKID / MUSICBRAINZ RELEASE TRACK ID`\n- `MUSICBRAINZ_WORKID / MUSICBRAINZ WORK ID`\n- The track's duration in milliseconds\n\nNote that [foobar2000](https://foobar2000.org) does not support reading track id ([recording](https://musicbrainz.org/doc/Recording)) tags that are written to MP3s as `UFID` by [MusicBrainz Picard](https://picard.musicbrainz.org/).\n\nBy default details about the media player (\"foobar2000\" and version) and the submission client (\"foo_listenbrainz2\" and component version) will be submitted as well. If you dislike this behavior you can disable it in the preferences.\n\n\n## Multi-value tag handling\n\n- For artist/work [MBID](https://musicbrainz.org/doc/MusicBrainz_Identifier)s, all values are sent.\n- By default, only the first value of any multi-value `ARTIST` tag is sent. This can be changed in the preferences so all values are sent as a comma separated string. Before this option was added in `v1.1.3`, only the first value was sent.\n- For all other tags, only the first value is sent.\n\n\n## Caching of failed submissions\n\nThis happens automatically so you don't need to do anything to trigger it. If you're offline or [ListenBrainz](https://listenbrainz.org) is down, the `Console` will report each time a `listen` is cached and the next time you submit a successful `listen`, an attempt will be made to submit all cached entries.\n\n\n## Limitations\n\n- Currently there is no support for streams or tracks of an unknown length.\n- [foobar2000](https://foobar2000.org) does not support reading track id ([recording](https://musicbrainz.org/doc/Recording)) tags that are written to MP3s as `UFID` by [MusicBrainz Picard](https://picard.musicbrainz.org/).\n\n\n## License\n\nfoo_listenbrainz2 is published under the MIT license. See [LICENSE.txt](./LICENSE.txt) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphw%2Ffoo_listenbrainz2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphw%2Ffoo_listenbrainz2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphw%2Ffoo_listenbrainz2/lists"}