{"id":41918624,"url":"https://github.com/gotling/mopidy-auto","last_synced_at":"2026-01-25T16:35:51.405Z","repository":{"id":57443123,"uuid":"85788812","full_name":"gotling/mopidy-auto","owner":"gotling","description":"Mopidy extension to automate music playback based on time of day","archived":false,"fork":false,"pushed_at":"2018-06-16T03:29:09.000Z","size":89,"stargazers_count":8,"open_issues_count":5,"forks_count":5,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-28T15:10:42.332Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/gotling.png","metadata":{"files":{"readme":"README.rst","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}},"created_at":"2017-03-22T05:32:25.000Z","updated_at":"2022-12-31T23:24:13.000Z","dependencies_parsed_at":"2022-09-26T17:21:33.797Z","dependency_job_id":null,"html_url":"https://github.com/gotling/mopidy-auto","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/gotling/mopidy-auto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotling%2Fmopidy-auto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotling%2Fmopidy-auto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotling%2Fmopidy-auto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotling%2Fmopidy-auto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gotling","download_url":"https://codeload.github.com/gotling/mopidy-auto/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotling%2Fmopidy-auto/sbom","scorecard":{"id":442030,"data":{"date":"2025-08-11","repo":{"name":"github.com/gotling/mopidy-auto","commit":"6376e53b70d0e9ab0f8338d9eefcb063be208339"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-19T05:48:04.189Z","repository_id":57443123,"created_at":"2025-08-19T05:48:04.190Z","updated_at":"2025-08-19T05:48:04.190Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28755557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T16:32:25.380Z","status":"ssl_error","status_checked_at":"2026-01-25T16:32:09.189Z","response_time":113,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-01-25T16:35:51.329Z","updated_at":"2026-01-25T16:35:51.395Z","avatar_url":"https://github.com/gotling.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"****************************\nMopidy-Auto\n****************************\n\n.. image:: https://img.shields.io/pypi/v/Mopidy-Auto.svg?style=flat\n    :target: https://pypi.python.org/pypi/Mopidy-Auto/\n    :alt: Latest PyPI version\n\n.. image:: https://img.shields.io/travis/gotling/mopidy-auto/master.svg?style=flat\n    :target: https://travis-ci.org/gotling/mopidy-auto\n    :alt: Travis CI build status\n\n.. image:: https://img.shields.io/coveralls/gotling/mopidy-auto/master.svg?style=flat\n   :target: https://coveralls.io/r/gotling/mopidy-auto\n   :alt: Test coverage\n\nMopidy extension to automate music playback based on time of day.\n\nCan be used in restaurants to play fitting music depending on time of day with no user input required.\n\n**Notice**\n\n- Only tested with *file://* backend.\n- This extension high-jacks many Mopidy events to control playback so it does not play well with other extensions.\n\nConsists of a frontend and simple web client.\n\nFrontend\n========\n\nIf no tracks are playing and a play event is received, or if playback ends, a random album will be added to the\ntracklist and playback started.\n\nAlbum is chosen from one of 3 sections, based on time of day. After an album has been played, it will not play again\nuntil all other albums in it's section has been played.\n\nIf volume is set higher than what is configured for the section, it will be lowered before playback starts.\n\nWeb Client\n==========\n\nThe web client is reached on url `/auto/`. It shows which track, artist and album is playing.\n\nIt has 3 buttons: **Play / Pause**, skip to **next track** and skip to **next album**.\n\nIt also has a volume control.\n\nBy logging in with admin key current playing track or album can be deleted.\n\nInstallation\n============\n\nInstall by running::\n\n    pip install Mopidy-Auto\n\nConfiguration\n=============\n\nBefore starting Mopidy, you must add configuration for\nMopidy-Auto to your Mopidy configuration file::\n\n  [auto]\n  enabled = true\n\n  # Key required to access admin section\n  admin_key = 123\n\n  # URI where the sections folders are located. Should be same as '[file] media_dirs'\n  base_path = file:///media/Music/\n\n  # Max number of tracks that can be added from one folder. Set to 0 or lower to disable limit\n  max_tracks = 15\n\n  # Sections of different music activated depending on time of day. Currently locked to 3\n  # At what time this section gets active\n  s0_start = 00:00\n  # Folder name in where to find albums\n  s0_folder = Rap\n  # Decrease volume to this level if it is set higher when new folder is being played\n  s0_max_volume = 50\n\n  s1_start = 11:00\n  s1_folder = Trip Hop\n  s1_max_volume = 80\n\n  s2_start = 18:30\n  s2_folder = Rock\n  s2_max_volume = 80\n\n\nRecommend File backend configuration\n====================================\n\nTo make sure playback does not stop due to file types unhandled by Mopidy this exclude works well::\n\n  [file]\n  ...\n  excluded_file_extensions =\n    .nfo\n    .ini\n    .db\n    .rtf\n    .jpg\n    .jpeg\n    .png\n    .gif\n    .log\n    .dat\n    .txt\n    .sfv\n    .pls\n    .m3u\n    .wma\n    .mpc\n    .htm\n    .html\n    .aac\n    .m4a\n    .sfk\n    .url\n    .cue\n    .pdf\n    .m3u8\n    .bmp\n    .lnk\n    .bc!\n    .BMP\n    .psp\n    .ape\n    .aif\n    .rar\n\nAutomatically start playback\n============================\n\nBy adding a cronjob you can have playback start automatically a certain time or when the device is booted.\n\nEdit crontab\n\n    crontab -e\n\nStart playback at 7 o'clock every morning\n\n    0 7 * * * curl -d '{\"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"core.tracklist.clear\"}' http://localhost:6680/mopidy/rpc\n\nStart playback on device boot\n\n    @reboot sleep 60 \u0026\u0026 curl -d '{\"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"core.tracklist.clear\"}' http://localhost:6680/mopidy/rpc\n\nProject resources\n=================\n\n- `Source code \u003chttps://github.com/gotling/mopidy-auto\u003e`_\n- `Issue tracker \u003chttps://github.com/gotling/mopidy-auto/issues\u003e`_\n\n\nChangelog\n=========\n\n0.5.0\n-----\n\n- If folder was deeper than one level unique albums were thought to be depleted to early\n- Handle first section not starting at midnight by returning the last section\n\n0.4.0\n-----\n\n- Handle empty folders gracefully - `#15 \u003chttps://github.com/gotling/mopidy-auto/issues/15\u003e`_\n- Added move album - `#12 \u003chttps://github.com/gotling/mopidy-auto/issues/12\u003e`_\n\n0.3.0\n-----\n\n- Change start time setting from sX_hour + sX_minute to sX_start with format hh:mm\n- Change next track and album buttons\n- Change volume step to 5%\n- Fade out volume when changing track - `#13 \u003chttps://github.com/gotling/mopidy-auto/issues/13\u003e`_\n- Added admin mode with restricted functions - `#1 \u003chttps://github.com/gotling/mopidy-auto/issues/1\u003e`_\n- Added delete track - `#2 \u003chttps://github.com/gotling/mopidy-auto/issues/2\u003e`_\n- Added delete album - `#3 \u003chttps://github.com/gotling/mopidy-auto/issues/3\u003e`_\n\n0.2.0\n-----\n\n- Display time of current playing track - `#9 \u003chttps://github.com/gotling/mopidy-auto/issues/9\u003e`_\n- Play album from new section when its time is reached - `#8 \u003chttps://github.com/gotling/mopidy-auto/issues/8\u003e`_\n- Added skip to next album - `#5 \u003chttps://github.com/gotling/mopidy-auto/issues/5\u003e`_\n- History is stored per section - `#6 \u003chttps://github.com/gotling/mopidy-auto/issues/6\u003e`_\n\n\n0.1.0\n-----\n\n- Initial release.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgotling%2Fmopidy-auto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgotling%2Fmopidy-auto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgotling%2Fmopidy-auto/lists"}