{"id":18450507,"url":"https://github.com/joshiemoore/vocafs","last_synced_at":"2026-04-29T00:32:38.116Z","repository":{"id":138154297,"uuid":"610139413","full_name":"joshiemoore/vocaFS","owner":"joshiemoore","description":"Using the Vocaroo voice recording service as a free cloud file system","archived":false,"fork":false,"pushed_at":"2023-03-06T07:41:51.000Z","size":21,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T00:34:35.385Z","etag":null,"topics":["filesystem","libfuse","linux","pyfuse","vocaroo"],"latest_commit_sha":null,"homepage":"https://vocaroo.com","language":"Python","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/joshiemoore.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-06T07:06:23.000Z","updated_at":"2024-09-07T00:25:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"8b00aa87-8644-409d-9e57-d21d377fb1b1","html_url":"https://github.com/joshiemoore/vocaFS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joshiemoore/vocaFS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshiemoore%2FvocaFS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshiemoore%2FvocaFS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshiemoore%2FvocaFS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshiemoore%2FvocaFS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joshiemoore","download_url":"https://codeload.github.com/joshiemoore/vocaFS/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshiemoore%2FvocaFS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32405901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","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":["filesystem","libfuse","linux","pyfuse","vocaroo"],"created_at":"2024-11-06T07:25:25.074Z","updated_at":"2026-04-29T00:32:38.090Z","avatar_url":"https://github.com/joshiemoore.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vocaFS\nThis project implements a virtual filesystem based on libfuse which streams files to Vocaroo as \"audio\" instead of saving\nthem to a block device. As a result, we can use Vocaroo as our own free cloud storage!\n\nvocaFS is an experimental work-in-progress prototype and should not be used for anything that actually matters. Also,\nthis is mostly intended as an academic exercise, not for actually abusing Vocaroo in this way.\n\nvocaFS is Free Software, licensed under the terms of GNU GPLv3.\n\n### Usage\nvocaFS will only work on a GNU/Linux operating system with FUSE available.\n\n1. Clone this repository\n2. Install requirements: `$ python3 -m pip install requirements.txt`\n3. Create an empty directory to mount vocaFS to, e.g. `$ mkdir voca`\n4. Run vocaFS to mount the virtual filesystem: `$ ./vocafs.py voca`\n\nNow, when you write files into the `voca` directory, they will be streamed to Vocaroo. When you go back and read these\nfiles later, they will be streamed from Vocaroo. Vocaroo is cloud storage!\n\nWhen you are done, unmount vocaFS: `$ fusermount -u voca`\n\n### How does it work?\nThis project uses pyfuse, the Python bindings for libfuse, to implement the meat of the virtual filesystem operations.\n\nMetadata about inodes in the filesystem will be saved to `inodes.json` in the source directory. This file mostly contains\ninformation about directory structures and where vocaFS can find your files on Vocaroo. These files are interchangeable,\nso if you send your `inodes.json` to someone else and they save it into their `vocaFS` directory, they will be able to\nmount the filesystem and access all the files you have saved.\n\nIn order to get the streams to Vocaroo to work, all I had to do was append a 4-byte mp3 segment header to the beginning\nof the file, and this was all it took to make Vocaroo believe we are uploading legitimate mp3 audio. But the playback\ndoesn't work if you try to play your uploaded file on the actual website :)\n\n![2023-03-06-022558_559x329_scrot](https://user-images.githubusercontent.com/36491773/223045467-ff2884c8-badd-4029-ad69-f5e5da198074.png)\n\n### Limitations\nvocaFS is incomplete, and there are likely many features missing that you would expect from a normal filesystem. For example,\nvocaFS does not currently support links, either hard or symbolic. Overall, you should expect instability and bugs to the\npoint where you should not actually try to use this as your real cloud storage solution.\n\n### Why Python?\nRapid prototyping\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshiemoore%2Fvocafs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoshiemoore%2Fvocafs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshiemoore%2Fvocafs/lists"}