{"id":20957826,"url":"https://github.com/deadsix27/foo_now_playing_helper","last_synced_at":"2025-10-27T03:03:42.589Z","repository":{"id":73393992,"uuid":"177285457","full_name":"DeadSix27/foo_now_playing_helper","owner":"DeadSix27","description":"A foobar2000 component that announces events as well as track metadata via OutputDebugString, which is a hacky but simple method to capture it from other programs","archived":false,"fork":false,"pushed_at":"2019-03-23T13:14:21.000Z","size":23,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-19T23:48:12.089Z","etag":null,"topics":["addon","cpp","foobar2000","foobar2000-component","now-playing","outputdebugstring","plugin"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DeadSix27.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2019-03-23T12:20:52.000Z","updated_at":"2022-04-05T22:00:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"8c12e4d8-5748-4b94-aaec-96c65b572af4","html_url":"https://github.com/DeadSix27/foo_now_playing_helper","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeadSix27%2Ffoo_now_playing_helper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeadSix27%2Ffoo_now_playing_helper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeadSix27%2Ffoo_now_playing_helper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeadSix27%2Ffoo_now_playing_helper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DeadSix27","download_url":"https://codeload.github.com/DeadSix27/foo_now_playing_helper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243352035,"owners_count":20276916,"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":["addon","cpp","foobar2000","foobar2000-component","now-playing","outputdebugstring","plugin"],"created_at":"2024-11-19T01:44:11.492Z","updated_at":"2025-10-27T03:03:37.560Z","avatar_url":"https://github.com/DeadSix27.png","language":"C++","readme":"\n\n# foo_now_playing_helper\n\nA foobar2000 component that announces events as well as track metadata via `OutputDebugString`, which allows for easy capture in other programs.\n\n\n#### Announced events:\n\n* `D6FNP_INIT`\n\n\tSent when the plugin is loaded (e.g foobar2000 starts)\n* `D6FNP_QUIT`\n\n\tSent when the plugin is unloaded (e.g when foobar2000 exits)\n* `\"D6FNP_STATECHANGE_PLAY!\"`\n\n\tSent when playback is started.\n* `D6FNP_STATECHANGE_PAUSE`; `D6FNP_PBPAUSE`\n\n\tSent when playback is paused.\n* `D6FNP_STATECHANGE_RESUME`\n\n\tSent when playback is resumed.\n* `D6FNP_STATECHANGE_SETTRACK`\n\n\t(I forgot when this happens, see: `play_control::track_command_settrack`, probably never occurs)\n* `D6FNP_STATECHANGE_STOP`\n\n\tSent when playback is stopped.\n* `D6FNP_NEWTRACK`\n\n\tSent when a new track is starting, e.g when a song ends or you skip to the next.\n* `D6FNP_SONGINFO`\n\n\tOccurs at the same time as `D6FNP_NEWTRACK`, contains all the useful song information encoded as base64 and separated by `|`.\n\n#### Structure of `D6FNP_SONGINFO`:\nNotes:\n- In this example we replaced the `|` separator by line breaks to make it readable.\n- Every value is separately encoded in base64 to retain Unicode characters of different languages.\n```\nD6FNP_SONGINFO!\n%title%\n%artist%\n%album artist%\n%album%\n%codec%\n%bitrate%\n%samplerate%\n$info(bitspersample)\n%filesize%\n$year(%date%)\n%discnumber%\n%tracknumber%\n%length_seconds%\n%path%\n$directory_path(%path%)\n%rating%\n```\nPopulated example:\n```\nD6FNP_SONGINFO!\nMoonlight\nAsterisk feat. 那由多\nLost Landscape\nLilium Records\nFLAC\n1045\n44100\n16\n35396699\n2018\n1\n1\n269\nG:\\example_path\\music\\Lilium Records - Lost Landscape\\01. Moonlight.flac\nG:\\example_path\\music\\Lilium Records - Lost Landscape\\\n8\n```\n\n### Tools\nYou can use `Dbgview.exe` to view the messages: https://docs.microsoft.com/en-us/sysinternals/downloads/debugview\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeadsix27%2Ffoo_now_playing_helper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeadsix27%2Ffoo_now_playing_helper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeadsix27%2Ffoo_now_playing_helper/lists"}