{"id":43313504,"url":"https://github.com/jamlib/audioc","last_synced_at":"2026-02-01T21:44:01.013Z","repository":{"id":57575865,"uuid":"127578573","full_name":"jamlib/audioc","owner":"jamlib","description":"Clean up audio collection setting meta tags \u0026 embedding artwork","archived":false,"fork":false,"pushed_at":"2019-12-15T22:42:36.000Z","size":127,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-20T13:30:47.420Z","etag":null,"topics":["music","music-collection"],"latest_commit_sha":null,"homepage":"","language":"Go","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/jamlib.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-31T23:11:21.000Z","updated_at":"2022-12-01T18:40:39.000Z","dependencies_parsed_at":"2022-08-28T21:11:53.648Z","dependency_job_id":null,"html_url":"https://github.com/jamlib/audioc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jamlib/audioc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamlib%2Faudioc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamlib%2Faudioc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamlib%2Faudioc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamlib%2Faudioc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamlib","download_url":"https://codeload.github.com/jamlib/audioc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamlib%2Faudioc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28991838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T20:57:35.821Z","status":"ssl_error","status_checked_at":"2026-02-01T20:57:29.580Z","response_time":56,"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":["music","music-collection"],"created_at":"2026-02-01T21:44:00.233Z","updated_at":"2026-02-01T21:44:01.007Z","avatar_url":"https://github.com/jamlib.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# audioc\n\nClean up audio collection setting meta tags \u0026 embedding artwork\n\n## Usage\n\n```\nUsage: audioc [MODE] [OPTIONS] PATH\n\nPositional Args:\n  PATH           directory path\n\nMODE (specify only one):\n  --artist \"ARTIST\" --album \"ALBUM\"\n    treat as specific album belonging to specific artist\n\n  --artist \"ARTIST\"\n    treat as specific artist\n\n  --collection\n    treat as collection of artists\n\nOPTIONS:\n  --bitrate \"BITRATE\"\n    V0 (default)\n      convert to variable 256kbps mp3\n    320\n      convert to constant 320kbps mp3\n\n  --fix\n    fixes incorrect track length, ie 1035:36:51\n\n  --force\n    processes all files, even if path info matches tag info\n\n  --write\n    write changes to disk\n\nDebug:\n  --version\n    print program version, then exit\n\n```\n\n## Purpose\n\nThis program is designed to process a music collection, keeping specified FLAC\naudio files while converting all other audio formats to MP3.\n\nSource albums have a release year or performance date. This date is then used\nin both the album tag and folder path.\n\nAn example of the resulting folder structure:\n\n```\nGrateful Dead/\n    1977/\n        1977.05.15 St. Louis Arena, St. Louis, MO/\n        1977 Terrapin Station/\n```\n\nIn the above example, `1977.05.15 St. Louis Arena, St. Louis, MO` represents a\nlive performance, while `1977 Terrapin Station` represents a studio album. Both\nbelong to the artist `Grateful Dead`, nested within an additional folder\nrepresenting the year `1977`.\n\n## Dependencies\n\nThis tool depends on `ffmpeg` and `ffprobe` binaries installed or included\nwithin same folder, which are used to process the audio files and artwork.\n\nTo download `ffmpeg`:\n[https://ffmpeg.org/download.html](https://ffmpeg.org/download.html)\n\nThe `metaflac` binary needs to be installed or included to support album\nartwork embedding within FLAC files. If `metaflac` is not found, FLAC artwork\nembedding will be skipped, but the program will continue without error.\n\nThe `metaflac` binary is part of the `flac` package.\n\nTo download `flac`:\n[https://xiph.org/flac/download.html](https://xiph.org/flac/download.html)\n\n## Mode\n\n### Album (--artist \"Artist Name\" --album \"Album Name\")\n\nFiles nested within specified PATH are considered to be part of a specified\nalbum or live performance belonging to a specified artist.\n\n### Artist (--artist \"Artist Name\")\n\nChild directories of specified PATH are considered to be albums or live\nperformances belonging to the specified artist.\n\n### Collection (--collection)\n\nChild directories of specified PATH are considered to be artists. Child\ndirectories of each artist are considered to be albums or live performances\nbelonging to that artist.\n\nThe artist folder name overrides the audio file embedded artist metadata.\n\nTo skip processing a child directory, include ` - ` in its name. Such as:\n`Grateful Dead - UNORGANIZED`\n\n## Options\n\n### Bitrate (--bitrate V0 OR --bitrate 320)\n\nConvert other audio formats to MP3 using `libmp3lame` encoding and either V0\n(variable 256kbps) or 320 (constant 320kbps) bitrate.\n\nTo skip converting FLAC audio to MP3, include ` - FLAC` at the end of the album\nfolder name.\n\n### Fix (--fix)\n\nFixes incorrect track length (ie, 1035:36:51) affecting certain variable MP3\nencodes by removing all metadata, then adding minimal metadata back in a\nseparate process.\n\n### Force (--force)\n\nProcesses each audio file regardless of whether or not the path and file info\nmatches its tag info.\n\n### Write (--write)\n\nBy not including `--write`, the process will run in simulation, printing all\nchanges to the console for review.\n\nIncluding `--write` will apply changes by writing to disk. This process cannot\nbe undone.\n\n## Developing\n\n### Install / Update Go on Linux\n\nDownload latest go binary from [golang.org/dl](https://golang.org/dl/). In this case, version `1.13.5`.\n\nRemove any existing installation, run:\n\n    if [ -d /usr/local/go ]; then sudo rm -r /usr/local/go; fi\n\nExtract to `/usr/local`, run:\n\n    sudo tar -C /usr/local -xzf go1.13.5.linux-amd64.tar.gz\n\nCreate go home dir if doesn't already exist, run:\n\n    if [ ! -d $HOME/go ]; then mkdir $HOME/go; fi\n\nEdit `~/.profile`, run:\n\n    nano ~/.profile\n\nAppend the following, then save/exit:\n\n    export PATH=$PATH:/usr/local/go/bin\n    export GOPATH=$(go env GOPATH)\n    export PATH=$PATH:$GOPATH/bin\n\nSource updated profile, run:\n\n    source ~/.profile\n\n### Building\n\nFrom within source path, to build the binary, run:\n\n    go build -o audioc cmd/*.go\n\nTo install the binary, run:\n\n    go build -o $GOPATH/bin/audioc cmd/*.go\n\nTo test by displaying usage, run:\n\n    audioc --help\n\n### Testing\n\nFrom within source path, run:\n\n    go test -cover -v ./...\n\n### Contributing\n\nFork repo on Github.\n\nFrom within source path, setup new remote, run:\n\n    git remote add myfork git@github.com:$GITHUB-USERNAME/audioc.git\n\nCreate a new branch to use for development, run:\n\n    git checkout -b new-branch\n\nMake your changes, add, commit and push to your Github fork.\n\nBack on Github, submit pull request.\n\n## License\n\nThis code is available open source under the terms of the\n[MIT License](http://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamlib%2Faudioc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamlib%2Faudioc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamlib%2Faudioc/lists"}