{"id":28885260,"url":"https://github.com/netzulo/vipfs-protocol","last_synced_at":"2026-04-24T22:34:42.813Z","repository":{"id":296745835,"uuid":"994327377","full_name":"netzulo/vipfs-protocol","owner":"netzulo","description":"Blockchain Cypher for Video Uploader to IPFS","archived":false,"fork":false,"pushed_at":"2025-06-01T19:48:38.000Z","size":17414,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-02T05:01:52.717Z","etag":null,"topics":["blockchain","cypher","ipfs","typescript","uploader","video"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/netzulo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2025-06-01T17:49:01.000Z","updated_at":"2025-06-01T19:48:41.000Z","dependencies_parsed_at":"2025-06-02T05:02:19.807Z","dependency_job_id":"0dd6ee43-61e0-4c12-9588-4c647e76d460","html_url":"https://github.com/netzulo/vipfs-protocol","commit_stats":null,"previous_names":["netzulo/vipfs-protocol"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/netzulo/vipfs-protocol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netzulo%2Fvipfs-protocol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netzulo%2Fvipfs-protocol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netzulo%2Fvipfs-protocol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netzulo%2Fvipfs-protocol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netzulo","download_url":"https://codeload.github.com/netzulo/vipfs-protocol/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netzulo%2Fvipfs-protocol/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261025993,"owners_count":23099094,"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":["blockchain","cypher","ipfs","typescript","uploader","video"],"created_at":"2025-06-20T22:05:44.678Z","updated_at":"2025-11-11T11:20:04.362Z","avatar_url":"https://github.com/netzulo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VIPFS-Protocol\n\n![GitHub stars](https://img.shields.io/github/stars/netzulo/vipfs-protocol.svg?style=social\u0026label=Star)\n[![npm](https://img.shields.io/npm/v/vipfs-protocol.svg)](https://www.npmjs.com/package/vipfs-protocol)\n![GitHub issues](https://img.shields.io/github/issues/netzulo/vipfs-protocol.svg)\n![License](https://img.shields.io/github/license/netzulo/vipfs-protocol)\n\nA robust TypeScript library for fragmenting, encrypting and uploading large video files to IPFS, using Ethereum-derived keys for security. Generates a JSON index to ensure video can be safely reassembled and decrypted later.\n\n---\n\n## 🚀 Features\n\n- 🔐 Fragmentation and encryption of videos with Ethereum-derived keys\n- 🧩 IPFS upload and index generation for decentralized storage\n- ♻️ Retry and resiliency system for reliable uploads\n- ⚡ TypeScript-first, fully type-safe API\n- 🧪 Modular design with unit tests for each step\n\n---\n\n## 📦 Installation\n\n```bash\nnpm install vipfs\n```\n\nor\n\n```bash\nyarn add vipfs-protocol\n```\n\n---\n\n## 🧪 Usage\n\n```tsx\nimport {\n  // helpers\n  // hooks\n  // services\n  VideoEncryptionManager,\n} from 'vipfs-protocol'\n\nconst manager = new VideoEncryptionManager(myEthereumWallet)\nconst indexJson = await manager.encryptAndUpload('/path/to/video.mp4')\n// Later, to reassemble the video:\nconst videoBuffer = await manager.downloadAndDecrypt(indexJson)\n```\n\n📘 For our website, visit [Github](https://github.com/netzulo/vipfs-protocol)\n📘 For full documentation, visit [Github](https://github.com/netzulo/vipfs-protocol)\n\n---\n\n## 🛠️ Development\n\n### Setup\n\n```bash\nnpm install\n```\n\n### Run dev server\n\n```bash\nnpm run dev\n```\n\n### Full build \u0026 lint cycle\n\n```bash\nnpm run ci\n```\n\nor \n\n```bash\nyarn ci\n```\n\n**⚠️ Reminder**: Clean up unused CSS classes in `public/output.css` after changes. Tailwind can generate many unused classes.\n\n---\n\n## 📜 NPM Scripts\n\n| Script          | Description                                                                                      |\n|-----------------|--------------------------------------------------------------------------------------------------|\n| `dev`           | Starts the development server                                                                    |\n| `css`           | Builds the CSS                                                                                   |\n| `css:dev`       | Builds CSS in watch/dev mode                                                                     |\n| `test`          | Runs tests with coverage                                                                         |\n| `lint`          | Runs ESLint                                                                                      |\n| `lint:fix`      | Fixes lint errors                                                                                |\n| `format`        | Formats code using Prettier                                                                      |\n| `build`         | Builds for production                                                                            |\n| `preview`       | Previews the production build locally                                                            |\n| `ci`            | Runs tests, lint, and formatting                                                                 |\n| `clean`         | Cleans `dist`, `node_modules`, `package-lock.json`, etc.                                         |\n\n---\n\n## 🧩 Components / Modules\n\nEach module has dedicated tests to ensure reliability and to simplify future extensions.\n\n- **VideoFragmenter** – Splits video files into fixed-size binary chunks\n- **FragmentEncryptor** – Encrypts/decrypts each chunk using Ethereum wallet-derived keys\n- **IPFSUploader** – Uploads/downloads each encrypted chunk to/from IPFS\n- **IndexManager** – Generates and updates the JSON index file with fragment metadata\n- **EthereumWallet** – Derives secure keys from an Ethereum wallet for encryption\n\n---\n\n## 👥 Contributing\n\nWe welcome contributions! Please read our [contributing guide](CONTRIBUTING.md) and follow the code style defined in `.eslintrc`.\n\n### Coverage\n\nCoverage is generated in `.coverage/index.html`, and you can view it in your browser. To generate coverage, run:\n\n```bash\nyarn test\n```\n\nThis is an example of the coverage report:\n\n![Coverage](./docs/coverage.png)\n\n---\n\n## 📄 License\n\n[MIT](./LICENSE)\n\n---\n\n## 📬 Contact Us\n\nFor questions, feedback, or business inquiries:\n\n**✉️ Email**: [netzuleando@gmail.com](mailto:netzuleando@gmail.com)  \n**🌐 Website**: [Github](https://github.com/netzulo/vipfs-protocol)\n\n---\n\n## 👨‍💻 Authors\n\nMade with ❤️ by the [@Netzulo](https://github.com/netzulo)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetzulo%2Fvipfs-protocol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetzulo%2Fvipfs-protocol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetzulo%2Fvipfs-protocol/lists"}