{"id":13400841,"url":"https://github.com/khenriks/mp3fs","last_synced_at":"2025-10-21T04:44:54.739Z","repository":{"id":938241,"uuid":"712498","full_name":"khenriks/mp3fs","owner":"khenriks","description":"FUSE-based transcoding filesystem from FLAC to MP3","archived":false,"fork":false,"pushed_at":"2025-09-11T23:23:40.000Z","size":1414,"stargazers_count":405,"open_issues_count":20,"forks_count":47,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-10-21T04:44:46.853Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://khenriks.github.io/mp3fs/","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/khenriks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-06-09T22:07:26.000Z","updated_at":"2025-10-06T11:40:48.000Z","dependencies_parsed_at":"2023-02-16T01:00:44.105Z","dependency_job_id":null,"html_url":"https://github.com/khenriks/mp3fs","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/khenriks/mp3fs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khenriks%2Fmp3fs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khenriks%2Fmp3fs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khenriks%2Fmp3fs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khenriks%2Fmp3fs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/khenriks","download_url":"https://codeload.github.com/khenriks/mp3fs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khenriks%2Fmp3fs/sbom","scorecard":{"id":558972,"data":{"date":"2025-08-11","repo":{"name":"github.com/khenriks/mp3fs","commit":"0bda17029964239f2ba03093f5ac138d30a5bec2"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.8,"checks":[{"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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: COPYING:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: COPYING: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":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.1.1 not signed: https://api.github.com/repos/khenriks/mp3fs/releases/39480963","Warn: release artifact v1.1 not signed: https://api.github.com/repos/khenriks/mp3fs/releases/37133423","Warn: release artifact v1.0 not signed: https://api.github.com/repos/khenriks/mp3fs/releases/26849658","Warn: release artifact v0.91 not signed: https://api.github.com/repos/khenriks/mp3fs/releases/320792","Warn: release artifact v0.9 not signed: https://api.github.com/repos/khenriks/mp3fs/releases/263413","Warn: release artifact v1.1.1 does not have provenance: https://api.github.com/repos/khenriks/mp3fs/releases/39480963","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/khenriks/mp3fs/releases/37133423","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/khenriks/mp3fs/releases/26849658","Warn: release artifact v0.91 does not have provenance: https://api.github.com/repos/khenriks/mp3fs/releases/320792","Warn: release artifact v0.9 does not have provenance: https://api.github.com/repos/khenriks/mp3fs/releases/263413"],"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: docker/Dockerfile:1","Warn: containerImage not pinned by hash: docker/Dockerfile:3","Warn: containerImage not pinned by hash: docker/Dockerfile:25","Info:   0 out of   3 containerImage dependencies pinned"],"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"}}]},"last_synced_at":"2025-08-20T13:07:03.325Z","repository_id":938241,"created_at":"2025-08-20T13:07:03.325Z","updated_at":"2025-08-20T13:07:03.325Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280207180,"owners_count":26290616,"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-10-21T02:00:06.614Z","response_time":58,"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":[],"created_at":"2024-07-30T19:00:56.088Z","updated_at":"2025-10-21T04:44:54.733Z","avatar_url":"https://github.com/khenriks.png","language":"C++","funding_links":[],"categories":["Built On"],"sub_categories":["Kafka"],"readme":"# mp3fs\n\n[![Build\nStatus](https://app.travis-ci.com/khenriks/mp3fs.svg?branch=master)](https://app.travis-ci.com/khenriks/mp3fs)\n\nWeb site: \u003chttp://khenriks.github.io/mp3fs/\u003e\n\nmp3fs is a read-only FUSE filesystem which transcodes between audio formats\n(currently FLAC and Ogg Vorbis to MP3) on the fly when opened and read.\n\nThis can let you use a FLAC or Ogg Vorbis collection with software and/or\nhardware which only understands the MP3 format, or transcode files through\nsimple drag-and-drop in a file browser.\n\nFor installation instructions see the [install](INSTALL.md) file.\n\n## Usage\n\nMount your filesystem like this:\n\n    mp3fs [-b bitrate] musicdir mountpoint [-o fuse_options]\n\nFor example,\n\n    mp3fs -b 128 /mnt/music /mnt/mp3 -o allow_other,ro\n\nIn recent versions of FUSE and mp3fs, the same can be achieved with the\nfollowing entry in `/etc/fstab`:\n\n    mp3fs#/mnt/music /mnt/mp3 fuse allow_other,ro,bitrate=128 0 0\n\nAt this point the files `/mnt/music/**.flac` and `/mnt/music/**.ogg` will show\nup as `/mnt/mp3/**.mp3`.\n\n**Tip:** If your mp3fs mount fails because the underlying filesystem hasn't\nbeen mounted yet, try adding the `x-systemd.requires-mounts-for=/mnt/music`\nmount option, where `/mnt/music` would be the location of the underlying mount.\n\n## How it Works\n\nWhen a file is opened, the decoder and encoder are initialised and the file\nmetadata is read. At this time the final filesize can be determined when using\nconstant bitrate (CBR) MP3 files. We also support VBR output, but can only\nestimate the size in that case.\n\nAs the file is read, it is transcoded into an internal per-file buffer. This\nbuffer continues to grow while the file is being read until the whole file is\ntranscoded in memory. The memory is freed only when the file is closed. This\nsimplifies the implementation.\n\nSeeking within a file will cause the file to be transcoded up to the seek point\n(if not already done). This is not usually a problem since most programs will\nread a file from start to finish. Future enhancements may provide true random\nseeking.\n\nID3 version 2.4 and 1.1 tags are created from the Vorbis comments in the FLAC\nor Ogg Vorbis file. They are located at the start and end of the file\nrespectively.\n\nA special optimisation is made so that applications which scan for id3v1 tags\ndo not have to wait for the whole file to be transcoded before reading the tag.\nThis *dramatically* speeds up such applications.\n\n## Development\n\nmp3fs uses Git for revision control. You can obtain the full repository with:\n\n    git clone https://github.com/khenriks/mp3fs.git\n\nmp3fs is written in a mixture of C and C++ and uses the following libraries:\n\n- [FUSE](http://fuse.sourceforge.net/)\n- [FLAC](http://flac.sourceforge.net/)\n- [libvorbis](http://www.xiph.org/vorbis/)\n- [LAME](http://lame.sourceforge.net/)\n- [libid3tag](http://www.underbit.com/products/mad/)\n\n## Authors\n\nThis program is maintained by K. Henriksson, who is the primary author from\n2008 to present.\n\nThe original maintainer and author was David Collett from 2006 to 2008. Much\nthanks to him for his original work.\n\n## License\n\nThis program can be distributed under the terms of the GNU GPL version 3 or\nlater. It can be found [online](http://www.gnu.org/licenses/gpl-3.0.html) or in\nthe COPYING file.\n\nThis and other documentation may be distributed under the GNU Free\nDocumentation License (GFDL) 1.3 or later with no invariant sections, or\nalternatively under the GNU General Public License (GPL) version 3 or later.\nThe GFDL can be found [online](http://www.gnu.org/licenses/fdl-1.3.html) or in\nthe COPYING.DOC file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhenriks%2Fmp3fs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkhenriks%2Fmp3fs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhenriks%2Fmp3fs/lists"}