{"id":17223486,"url":"https://github.com/aichingm/splay","last_synced_at":"2026-05-04T21:31:59.250Z","repository":{"id":84430474,"uuid":"97037082","full_name":"aichingm/splay","owner":"aichingm","description":"​splay is the only :notes: player I need. It is made for me by me and I :heart: it. It is :penguin: only.","archived":false,"fork":false,"pushed_at":"2018-06-20T17:44:13.000Z","size":42,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-28T01:06:25.882Z","etag":null,"topics":["c","linux","music","music-player","shell"],"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/aichingm.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":"2017-07-12T17:50:49.000Z","updated_at":"2018-06-20T17:44:14.000Z","dependencies_parsed_at":"2023-03-12T22:58:01.557Z","dependency_job_id":null,"html_url":"https://github.com/aichingm/splay","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aichingm/splay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aichingm%2Fsplay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aichingm%2Fsplay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aichingm%2Fsplay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aichingm%2Fsplay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aichingm","download_url":"https://codeload.github.com/aichingm/splay/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aichingm%2Fsplay/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32625952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"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":["c","linux","music","music-player","shell"],"created_at":"2024-10-15T04:08:27.705Z","updated_at":"2026-05-04T21:31:59.236Z","avatar_url":"https://github.com/aichingm.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# s[hell]play\n\nsplay is the only :notes: player I need. It is made for me by me and I :heart: it. It is :penguin: only.\n\n## Build splay\n\nTo build splay clone the git repo, change into it\n\n```shell\ngit clone https://github.com/aichingm/splay \u0026\u0026 cd splay\n```\n\nand run one of the four build options:\n\n1. The tiny version`make build` \n2. A version with enabled MPRIS support: `make build-mpris`\n3. _A debugging version for the the 1. option `make debug`_\n4. _A debugging version for the 2. option `make dbbug-mpris`_\n\nthis will create a binary in the _cwd_ called *splay*.\n\n## Colorize splay\n\nTo change the colors edit the color definitions in `src/colors.h` and rebuild splay.\n\n## Install splay\n\nJust move the *splay* binary in any of the directories which are in your `$PATH`.\n\n**No don't actually do this!** Move it for example to `/usr/local/bin` or create a `bin` directory in your `~` and add it to your `$PATH` \n\nIn order to run (and build) you need **some** of the below listed libraries on your system:\n\n- libvlc \n- ncurses \n- libtinfo\n- dbus (only for build with MPRS support)\n\n## Play all the tunes \n\nsplay reads a list of files from `stdin` and plays one after another.  splay can play all formats vlc can play.\n\nFor the purpose of usage I will assume that you have some music in `~/Music` , 'cause that's where music belongs.\n\n#### Basic usage\n\n​Play your :blue_heart: song\n\n```shell\necho best_song_ever.ogg | splay\n```\n\nPlay all music in the `cwd`\n\n```shell\nls -N1 | splay\n```\n\nPlay all your music\n\n```shell\nfind ~/Music | splay\n```\n\nPlay all your ogg's\n\n```shell\nfind ~/Music/*.ogg | splay\n```\n\n#### Advanced usage\n\nsplay can also play in shuffle mode\n\n```shell\nfind ~/Music | shuf | splay\n```\n\nPlay your music ordered by name *(add -r after sort to reverse)*\n\n```shell\nfind ~/Music | sort | splay  \n```\n\nHey DJ, loop it :cd:\n\n```shell\nwhile true; do echo ~/Music/nyan_cat_poor_quality.mp3 | splay; done\n```\n\nPlay all your music in a loop \n\n```shell\nwhile true; do find ~/Music | splay; done\n```\n\nPlay the 10 most recently added tracks\n\n```shell\nfind ~/Music -type f -printf '%T@ %p\\0' | sort -zk 1nr | sed -z 's/^[^ ]* //' | tr '\\0' '\\n' | head -n 10 | splay\n```\n\n**I will stop now, I think you got it :bulb:**\n\n#### splay does playlists too\n\nCreate a playlist of all your ogg music \n\n```shell\nfind ~/Music*.ogg \u003e ~/Playlists/cool_songs.plist\n```\n\nAdd a song to a playlist\n\n```shell\necho ~/Music/nyan_cat_poor_quality.mp3 \u003e\u003e ~/Playlists/cool_songs.plist\n```\n\nPlay a playlist with splay\n\n```shell\ncat ~/Playlists/cool_songs.plist | splay\n```\n\n#### I need my daily dose of :needle:\n\nHow do I play only ogg's from interpret `\u003cinsert cool artist here\u003e`? That's simple:\n\n```shell\n(a=\u003cinsert cool artist here\u003e; find . -name \"*.ogg\" -type f -exec grep -l -i -P \"ARTIST=$a\\x01\" {} \\; | splay)\n```\n\nSince searching for tracks of fresh artists is a hard job for your spinning metal consider saving your search results to a playlist:\n\n```shell\n(a=\u003cinsert cool artist here\u003e; find . -name \"*.ogg\" -type f -exec grep -l -i -P \"ARTIST=$a\\x01\" {} \\; | tee \"Only_$a.plist\" | splay)\n```\n\nYou can now play your playlist every time you want:\n\n```shell\ncat \"Only_\u003cinsert cool artist here\u003e.plist\" | splay\n```\n\n#### Hit all the Keys\n\nThere are only 11 defined \n\n* `e` , `end` end splay\n* `up` move the selection up\n* `down` move the selection not up\n* `enter`  play the selected song\n* `n` play the next song\n* `p` play the previous song\n* `space` switch between playing and pause \n* `left` seek ten seconds backwards\n* `right` seek ten seconds in to the future\n* `t` cycle through title display modes :arrows_counterclockwise:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faichingm%2Fsplay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faichingm%2Fsplay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faichingm%2Fsplay/lists"}