{"id":15714321,"url":"https://github.com/cbodden/nd-to-slack","last_synced_at":"2026-04-11T21:40:32.950Z","repository":{"id":253477868,"uuid":"843629921","full_name":"cbodden/nd-to-slack","owner":"cbodden","description":"A script that will display your navidrome users activities in slack.","archived":false,"fork":false,"pushed_at":"2024-08-27T00:54:23.000Z","size":429,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T19:46:42.825Z","etag":null,"topics":["navidrome","slack","slack-api"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cbodden.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":"2024-08-17T00:36:13.000Z","updated_at":"2024-08-27T00:54:26.000Z","dependencies_parsed_at":"2024-08-27T02:52:13.765Z","dependency_job_id":"b6c3a23a-b306-4388-8c76-e41476180075","html_url":"https://github.com/cbodden/nd-to-slack","commit_stats":null,"previous_names":["cbodden/nd-to-slack"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cbodden/nd-to-slack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbodden%2Fnd-to-slack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbodden%2Fnd-to-slack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbodden%2Fnd-to-slack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbodden%2Fnd-to-slack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cbodden","download_url":"https://codeload.github.com/cbodden/nd-to-slack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbodden%2Fnd-to-slack/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268617383,"owners_count":24279230,"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","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["navidrome","slack","slack-api"],"created_at":"2024-10-03T21:36:08.897Z","updated_at":"2026-04-11T21:40:27.916Z","avatar_url":"https://github.com/cbodden.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Unsupported](https://img.shields.io/badge/development_status-in_progress-green.svg)\n[![License: Unlicense](https://img.shields.io/badge/license-Unlicense-blue.svg)](http://unlicense.org/)\n\n```\n\n                :::.    :::.:::::::-.      ::::::::::::   ...\n                `;;;;,  `;;; ;;,   `';,    ;;;;;;;;''''.;;;;;;;.\n                  [[[[[. '[[ `[[     [[         [[    ,[[     \\[[,\n                  $$$ \"Y$c$$  $$,    $$         $$    $$$,     $$$\n                  888    Y88  888_,o8P'         88,   \"888,_ _,88P\n                  MMM     YM  MMMMP\"`           MMM     \"YMMMMMP\"\n\n\n                 .::::::.  :::      :::.       .,-:::::  :::  .\n                ;;;`    `  ;;;      ;;`;;    ,;;;'````'  ;;; .;;,.\n                '[==/[[[[, [[[     ,[[ '[[,  [[[         [[[[[/'\n                  '''    $ $$'    c$$$cc$$$c $$$        _$$$$,\n                 88b    dPo88oo,.__888   888,`88bo,__,o,\"888\"88o,\n                  \"YMmMY\" \"\"\"\"YUMMMYMM   \"\"`   \"YUMMMMMP\"MMM \"MMP\"\n\n```\n\nnd-to-slack.sh\n====\n\n    A script that will display your navidrome users activities in slack.\n    The messages will be formatted:\n    \"\u003cUSER\u003e is listening to \u003cSONG\u003e by \u003cARTIST\u003e off of \u003cALBUM\u003e.\"\n\nScreenShots\n----\n- In Slack:\n![slack](images/slack.png)\n- In Wee-slack:\n![wee-slack](images/weeslack.png)\n\nConfiguration\n----\nBefore this script can be used you need to copy the\nnd-to-slack.config.EXAMPLE file and copy it to nd-to-slack.config\nand change all values listed as \"\\\u003cCHANGE ME\\\u003e\" to working values.\n\n- nd-to-slack.config.EXAMPLE\n```\nUSER=\"\u003cCHANGE ME\u003e\"\nTOKEN=\"\u003cCHANGE ME\u003e\"\nSALT=\"\u003cCHANGE ME\u003e\"\nSERVER=\"\u003cCHANGE ME\u003e\"\nURL_API=\"https://hooks.slack.com/services\"\nURL_HOOK=\"\u003cCHANGE ME\u003e\"\nEMOJI=\"3\"\nLINK=\"1\"\n```\n\n\nLet us start with USER, TOKEN, and SALT.\nOn your navidrome server (this was done with Firefox), once on your\nnavidrome home page, right click, and inspect. In the inspection pane click\nstorage at the top and then local storage on the left hand to have a window\nsimilar to the one below:\n\n![inspector](images/inspector.png)\n\n- Copy the role / name / username value to USER.\n- Copy the subsonic-salt value to SALT.\n- Copy the subsonic-token value to TOKEN.\n\nNow, lets change the server address to whatever your servers URL is.\n\nThe slack URL_API and the URL_HOOK have been covered in many other places.\nYou just need to add an app to slack and grab the webhook url. Once grabbed\nhere is the breakdown:\n```\nhttps://hooks.slack.com/services/TTTTTTTTTTT/QQQQQQQQQQQ/XXXXXXXXXXXXXXXXXXXXXX\n|           URL_API             |                URL_HOOK                     |\n```\n\n\nFor vanity reasons there is a var called \"EMOJI\". This setting is 1, 2, or 3.\n- 1 = no emoji set in the messages\n- 2 = \"musical_note\" :musical_note: is set for all messages.\n- 3 = Randomized\n\nIf none is set it will default to \"3\".\n\nIf you want to post with a link to the album you have to change the config\nvar \"LINK\" to \"1\".\n- Appearance with links in Slack:\n![slack_links](images/slack_with_links.png)\n- Appearance with links in Wee-Slack:\n![wee-slack_links](images/wee-slack_with_links.png)\n\n\nWe also need to change the DIR path in the script itself towards the top.\nThis sets the hardcoded path to the folder location of this script and to the\nconfig folder in case you are running this script in cron.\n\nOnce all the Vars are changed now the script can be started. That will be\ncovered in usage.\n\n\nUsage\n----\nThis script can be run a couple of different ways. Two of the easiest are\nby using either cron or doing a while loop at the command line.\n\n- while loop approach\n```\nwhile :; do ./nd-to-slack.sh ; sleep 300 ; done\n```\n\n\n- crontab approach\n```\n*/5 * * * * /path/to/nd-to-slack.sh \u003e/dev/null\n```\n\n\nWhile the script runs if the server has no acivity the script will not\npost any messages until there is activity again and it wont repost a\npresently playing song if the loop / cron time is set short.\n\nThis script was test with cron at 1 minute intervals.\n\nRequirements\n----\n- Navidrome - music server (https://www.navidrome.org/)\n- JQ - JSON Processor (https://github.com/jqlang/jq)\n- cURL - (https://curl.se/)\n- slack - Web-based instant messaging service (https://slack.com/)\n\n\nLicense and Author\n----\nCopyright (c) 2024, cesar@poa.nyc\nAll rights reserved.\n\nThis source code is licensed under the Unlicense\nfound in the LICENSE file in the root directory of this\nsource tree.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbodden%2Fnd-to-slack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcbodden%2Fnd-to-slack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbodden%2Fnd-to-slack/lists"}