{"id":21029388,"url":"https://github.com/restorm-labs/nuxt-restream","last_synced_at":"2025-10-09T05:40:10.605Z","repository":{"id":39534053,"uuid":"506766464","full_name":"restorm-labs/nuxt-restream","owner":"restorm-labs","description":"Restream is a module that allows you to create a stream of an audio/video file from the Firebase storage, protected from direct download through the client-side.","archived":false,"fork":false,"pushed_at":"2022-06-28T11:15:25.000Z","size":134,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-24T05:46:37.686Z","etag":null,"topics":["firebase","firebase-storage","nuxt","nuxt-module","nuxt3","security","vue3"],"latest_commit_sha":null,"homepage":"https://twitter.com/restormlabs","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/restorm-labs.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}},"created_at":"2022-06-23T19:28:23.000Z","updated_at":"2025-08-14T20:06:25.000Z","dependencies_parsed_at":"2022-09-26T21:10:55.348Z","dependency_job_id":null,"html_url":"https://github.com/restorm-labs/nuxt-restream","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/restorm-labs/nuxt-restream","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restorm-labs%2Fnuxt-restream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restorm-labs%2Fnuxt-restream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restorm-labs%2Fnuxt-restream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restorm-labs%2Fnuxt-restream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/restorm-labs","download_url":"https://codeload.github.com/restorm-labs/nuxt-restream/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restorm-labs%2Fnuxt-restream/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000741,"owners_count":26082932,"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-09T02:00:07.460Z","response_time":59,"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":["firebase","firebase-storage","nuxt","nuxt-module","nuxt3","security","vue3"],"created_at":"2024-11-19T12:12:09.453Z","updated_at":"2025-10-09T05:40:10.578Z","avatar_url":"https://github.com/restorm-labs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cimg src=\"https://uc882976b624c423c094086a12ea.previews.dropboxusercontent.com/p/thumb/ABnCeOauOGCvGQLZ--qVAWN-8DZtimdQl-iFmLqq-xiHsT0o8eIPl5vJ5KVmrGhvgrEeOpwCNobsmLwhh-5fEicM9Hry6mOcTSmW72x0GNNdJ1MVchfk7yfb5oSMcHWBEshr_FV92ui1ziQJHA3z3FsefRKg5RKTuQjwO6CG3p4p9cSnhEVMbnryCayIgzklsQNBC239AZ_81RxWY1ir-eluvkQqDXd2hSLkiMib-wFO555MYAqVkEPDfIyDTX3-fbsA418QQkTCOVBnwJnZvSTgMan9C4bN9racctUZpqnOUPysQWB7KbGws0cIMhazKh5cXVDJ89bySvZfwln_uCiWKJoXRB8A9FYgXM0E79hTlr8klsdA_I65Ta-8_rjsRSaP7eIV3EOxfeGJJzvOWMZgWpLtrA2v90mIYXFbcv0cQQ/p.png\" alt=\"Logo\" width=\"200\" height=\"auto\"\u003e\n\n## nuxt-restream\n\n\u003e Restream is a module that allows you to create a stream of an audio/video file from the Firebase storage, protected from direct download through the client. Convenient to use if needed provide media files with restricted access such as purchase, subscription and avoid downloading the file directly from the Firebase storage on the client-side\n\n## Features\n\n- 🤓 Very easy to use\n- 🛡 Direct download protection\n- 🔥 Setup for Firebase Admin\n- 🟢 Nuxt 3\n\n## Quick setup\n\n1. Install `nuxt-restream`\n\n   ```bash\n   yarn add --dev firebase-admin nuxt-restream # or npm install --save-dev firebase-admin nuxt-restream\n   ```\n\n2. Add it to the `modules` section of `nuxt.config.ts`\n   ```js\n   import { defineNuxtConfig } from 'nuxt'\n\n   export default defineNuxtConfig({\n     modules: ['nuxt-restream']\n   })\n   ```\n\n3. Basic configuration `restream` setup for accessing Firebase [Get JSON file with credential Admin Firebase](https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk)\n   ```js\n   import { defineNuxtConfig } from 'nuxt'\n\n   export default defineNuxtConfig({     \n     restream: {\n       credential: './firebase-admin-sdk.json',\n       storage: 'firebase-storage-name.appspot.com'\n     }\n   })\n   ```\n\n4. Add `src` attribute with a link to server routes `/api/restream` with the `?f=` parameter containing the path to the file in Firebase storage.\n\n   ```vue\n   \u003ctemplate\u003e\n     \u003cdiv\u003e\n       \u003caudio src=\"/api/restream?f=path_to/audio.mp3\" typeof=\"audio/mp3\" controls /\u003e\n     \u003c/div\u003e\n   \u003c/template\u003e\n   ```\n\n   ## Configuration\n\nRestream supports a number of options, which you can pass in your `nuxt.config.ts` file:\n\n```js\nimport { defineNuxtConfig } from 'nuxt'\n\nexport default defineNuxtConfig({\n  // ...\n  restream: {\n    /**\n     * Path (relative to your base URL) where the JSON file with Firebase admin credentials.\n     * @example './assets/fearbook-c8d55-firebase-adminsdk-vbvi5-57b761f13c.json'\n     * @default undefund\n     */\n    credential: string,\n\n    /**\n     * Firebase storage bucket url\n     * @example 'fearbook-c8d55.appspot.com'\n     * @default undefund\n     */\n    storage: string,\n\n    /**\n     * Base route that will be used for restream api\n     * @example 'restream' -\u003e 'api/restream?f=...'\n     * @default 'restream' \n     */\n    apiRouteName: string\n  },\n})\n```\n\n## Licence\n\n[MIT Licence](./LICENCE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frestorm-labs%2Fnuxt-restream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frestorm-labs%2Fnuxt-restream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frestorm-labs%2Fnuxt-restream/lists"}