{"id":20846117,"url":"https://github.com/issadarkthing/gomu","last_synced_at":"2025-05-09T02:50:53.143Z","repository":{"id":37679079,"uuid":"273442353","full_name":"issadarkthing/gomu","owner":"issadarkthing","description":"golang TUI music player","archived":false,"fork":false,"pushed_at":"2024-05-04T20:37:26.000Z","size":941,"stargazers_count":175,"open_issues_count":14,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-31T21:34:23.019Z","etag":null,"topics":["go","golang","golang-app","linux","music-player","ncurses-tui","terminal","terminal-app","terminal-application","tview"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/issadarkthing.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}},"created_at":"2020-06-19T08:19:49.000Z","updated_at":"2025-03-28T15:17:11.000Z","dependencies_parsed_at":"2024-01-07T21:22:27.180Z","dependency_job_id":null,"html_url":"https://github.com/issadarkthing/gomu","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/issadarkthing%2Fgomu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/issadarkthing%2Fgomu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/issadarkthing%2Fgomu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/issadarkthing%2Fgomu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/issadarkthing","download_url":"https://codeload.github.com/issadarkthing/gomu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253181406,"owners_count":21866990,"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":["go","golang","golang-app","linux","music-player","ncurses-tui","terminal","terminal-app","terminal-application","tview"],"created_at":"2024-11-18T02:15:08.824Z","updated_at":"2025-05-09T02:50:53.127Z","avatar_url":"https://github.com/issadarkthing.png","language":"Go","readme":"\n## Gomu (Go Music Player) \n[![Go Report Card](https://goreportcard.com/badge/github.com/issadarkthing/gomu)](https://goreportcard.com/report/github.com/issadarkthing/gomu) [![Build Status](https://travis-ci.com/issadarkthing/gomu.svg?branch=master)](https://travis-ci.com/issadarkthing/gomu)\n\u003ca href=\"https://www.buymeacoffee.com/raziman\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/default-orange.png\" alt=\"Buy Me A Coffee\" height=\"41\" width=\"174\"\u003e\u003c/a\u003e\n\nGomu is intuitive, powerful CLI music player. It has embedded scripting language\nand event hook to enable user to customize their config extensively.\n\n![gomu](https://user-images.githubusercontent.com/50593529/107107772-37fdc000-686e-11eb-8c0f-c7d7f43f3c80.png)\n\n### Features\n- lightweight\n- simple\n- fast\n- show audio files as tree\n- queue cache\n- [vim](https://github.com/vim/vim) keybindings\n- [youtube-dl](https://github.com/ytdl-org/youtube-dl) integration\n- audio file management\n- customizable\n- find music from youtube\n- scriptable config\n- download lyric\n- id3v2 tag editor\n\n### Dependencies\nIf you are using ubuntu, you need to install alsa and required dependencies\n```sh\n$ sudo apt install libasound2-dev go\n```\nOptional dependencies can be installed by this command\n```sh\n$ sudo apt install youtube-dl\n```\n\n### Installation\n\n```sh\n$ go get -u github.com/issadarkthing/gomu\n```\n\nFor arch users, you can install from the AUR\n\nusing [yay](https://github.com/Jguer/yay):\n```sh\n$ yay -S gomu\n```\nusing [aura](https://github.com/fosskers/aura):\n```sh\n$ sudo aura -A gomu\n```\n\n\n### Configuration\nBy default, gomu will look for audio files in `~/music` directory. If you wish to change to your desired location, edit `~/.config/gomu/config` file\nand change `music_dir = path/to/your/musicDir`. \n\n\n### Keybindings\nEach panel has it's own additional keybinding. To view the available keybinding for the specific panel use `?`\n\n| Key (General)   |                     Description |\n|:----------------|--------------------------------:|\n| tab             |                    change panel |\n| space           |               toggle play/pause |\n| esc             |                     close popup |\n| n               |                            skip |\n| q               |                            quit |\n| +               |                       volume up |\n| -               |                     volume down |\n| f/F             |           forward 10/60 seconds |\n| b/B             |            rewind 10/60 seconds |\n| ?               |                     toggle help |\n| m               |                       open repl |\n| T               |                   switch lyrics |\n| c               |                     show colors |\n\n\n| Key (Playlist)  |                     Description |\n|:----------------|--------------------------------:|\n| j               |                            down |\n| k               |                              up |\n| h               |          close node in playlist |\n| a               |                 create playlist |\n| l (lowercase L) |               add song to queue |\n| L               |           add playlist to queue |\n| d               |    delete file from filesystemd |\n| D               | delete playlist from filesystem |\n| Y               |                  download audio |\n| r               |                         refresh |\n| R               |                          rename |\n| y/p             |                 yank/paste file |\n| /               |                find in playlist |\n| s               |       search audio from youtube |\n| t               |                   edit mp3 tags |\n| 1/2             |         find lyric if available |\n\n| Key (Queue)     |                     Description |\n|:----------------|--------------------------------:|\n| j               |                            down |\n| k               |                              up |\n| l (lowercase L) |              play selected song |\n| d               |               remove from queue |\n| D               |                 delete playlist |\n| z               |                     toggle loop |\n| s               |                         shuffle |\n| /               |                   find in queue |\n| t               | lyric delay increase 0.5 second |\n| r               | lyric delay decrease 0.5 second |\n\n### Scripting\n\nGomu uses [anko](https://github.com/mattn/anko) as its scripting language. You can read\nmore about scripting at our [wiki](https://github.com/issadarkthing/gomu/wiki)\n\n``` go\n\nKeybinds.def_g(\"ctrl_x\", func() {\n    out, err = shell(`echo \"hello world\"`)\n    if err != nil {\n        debug_popup(\"an error occured\")\n    }\n    info_popup(out)\n})\n\n```\n\n### Project Background\nI just wanted to implement my own music player with a programming language i'm currently learning ([Go](https://golang.org/)). Gomu might not be stable as it in constant development. For now, it can fulfill basic music player functions such as:\n- add and delete songs from queue\n- create playlists\n- skip\n- play\n- pause \n- forward and rewind\n\n### Similar Projects\n- [termusic](https://github.com/tramhao/termusic) (Written in rust and well maintained)\n\n### Album Photo\nFor songs downloaded by Gomu, the thumbnail will be embeded as Album cover. If you're not satisfied with the cover, you can edit it with kid3 and attach an image as album cover. Jpeg is tested, but other formats should work as well.\n\n### Donation\nHi! If you guys think the project is cool, you can buy me a coffee ;)\n\n\u003ca href=\"https://www.buymeacoffee.com/raziman\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/default-orange.png\" alt=\"Buy Me A Coffee\" height=\"50\" width=\"180\"\u003e\u003c/a\u003e\n\nSeeking and more advanced stuff has not yet been implemented; feel free to contribute.\n","funding_links":["https://www.buymeacoffee.com/raziman"],"categories":["\u003ca name=\"music\"\u003e\u003c/a\u003eSound and music"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fissadarkthing%2Fgomu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fissadarkthing%2Fgomu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fissadarkthing%2Fgomu/lists"}