{"id":20719856,"url":"https://github.com/itw-creative-works/streamii","last_synced_at":"2025-04-23T14:24:55.176Z","repository":{"id":179126627,"uuid":"603420702","full_name":"itw-creative-works/streamii","owner":"itw-creative-works","description":"24/7 Livestream to YouTube, Twitch, etc","archived":false,"fork":false,"pushed_at":"2024-06-20T00:49:06.000Z","size":1697,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T12:07:54.808Z","etag":null,"topics":["backend","livestream","livestreaming","nodejs"],"latest_commit_sha":null,"homepage":"https://itwcreativeworks.com","language":"JavaScript","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/itw-creative-works.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-02-18T13:09:18.000Z","updated_at":"2025-02-02T07:34:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"fe690396-b1aa-46f4-a000-c7820864c234","html_url":"https://github.com/itw-creative-works/streamii","commit_stats":null,"previous_names":["itw-creative-works/streamii"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itw-creative-works%2Fstreamii","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itw-creative-works%2Fstreamii/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itw-creative-works%2Fstreamii/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itw-creative-works%2Fstreamii/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itw-creative-works","download_url":"https://codeload.github.com/itw-creative-works/streamii/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250449529,"owners_count":21432482,"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":["backend","livestream","livestreaming","nodejs"],"created_at":"2024-11-17T03:18:36.200Z","updated_at":"2025-04-23T14:24:55.158Z","avatar_url":"https://github.com/itw-creative-works.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://itwcreativeworks.com\"\u003e\n    \u003cimg src=\"https://cdn.itwcreativeworks.com/assets/itw-creative-works/images/logo/itw-creative-works-brandmark-black-x.svg\" width=\"100px\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/package-json/v/itw-creative-works/streamii.svg\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://img.shields.io/librariesio/release/npm/streamii.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/bundlephobia/min/streamii.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/codeclimate/maintainability-percentage/itw-creative-works/streamii.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/npm/dm/streamii.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/node/v/streamii.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/website/https/itwcreativeworks.com.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/itw-creative-works/streamii.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/contributors/itw-creative-works/streamii.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/last-commit/itw-creative-works/streamii.svg\"\u003e\n  \u003cbr\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://itwcreativeworks.com\"\u003eSite\u003c/a\u003e | \u003ca href=\"https://www.npmjs.com/package/streamii\"\u003eNPM Module\u003c/a\u003e | \u003ca href=\"https://github.com/itw-creative-works/streamii\"\u003eGitHub Repo\u003c/a\u003e\n  \u003cbr\u003e\n  \u003cbr\u003e\n  \u003cstrong\u003eStreamii\u003c/strong\u003e is an NPM module for running a 24/7 livestream on YouTube, Twitch, or any streaming service\n\u003c/p\u003e\n\n## 🦄 Features\n* Just `require` and you're good to go\n* Stream 24/7 to YouTube, Twitch, etc\n\n## 📦 Install Streamii\n### Option 1: Install via npm\nInstall with npm if you plan to use **Streamii** in a Node.js project or in the browser.\n```shell\nnpm install streamii\n```\n\n```js\nconst Streamii = require('streamii');\nconst streamii = new Streamii({\n  stream: {\n    ingest: 'rtmp://x.rtmp.youtube.com/live2',\n    size: '1920x1080',\n    fps: 30,\n    videoBitrate: 1000,\n    audioBitrate: 128,\n  },\n  // Not yet implemented\n  // assets: {\n  //   fetch: true,\n  //   owner: 'soundgrail',\n  //   repo: 'soundgrail-livestream-ai-ambient',\n  // },\n  youtube: {\n    channelId: '7Hhsk39gjh77r5j_cj8sJsiI',\n  },\n  log: {\n    interval: 10000,\n  },\n  autoRestart: true,\n});\n\n// Listen for events\nstreamii.on('start', (event) =\u003e {\n  console.log('Started', event);\n});\n\nstreamii.on('stop', (event) =\u003e {\n  console.log('Started', event);\n});\n\nstreamii.on('error', (error) =\u003e {\n  console.log('Error: ', error);\n});\n\nstreamii.on('audio', (event, data) =\u003e {\n  console.log('Audio: ', data);\n});\n\nstreamii.on('video', (event, data) =\u003e {\n  console.log('Video: ', data);\n});\n\n// Start the stream\nstreamii.stream();\n```\n\n### Confgure Streamii\n#### 1. Setup .env file\nCreate a `.env` file in your project root directory with the following\n```\nSTREAM_KEY='put_your_stream_key_here'\nGH_TOKEN='put_your_gh_token_here'\n```\n\n#### 2. Setup assets\nPut your `video`, `audio`, and `font` assets in the `assets` folder of your project in this format:\n```\nassets\n├── audio\n│   ├── audio1.mp3\n│   ├── audio2.mp3\n│   └── audio3.mp3\n├── font\n│   └── title.ttf\n└── video\n    └── video.mp4\n```\nThe module will automatically use the `assets` in the stream.\n\n\u003c!-- #### 2. Upload assets\nZip and upload your stream assets to the same GitHub repository as release assets that you configure when you call `new Streamii()`. Your assets should be in this format:\n```\n.\n├── audio\n│   ├── audio1.mp3\n│   ├── audio2.mp3\n│   └── audio3.mp3\n└── video\n    └── video.mp4\n```\nThe module will automatically download the release assets and use them in the stream. --\u003e\n\n## 🧩 TODO\n* Downlaod assets from github\n\n## 🗨️ Final Words\nIf you are still having difficulty, we would love for you to post a question to [the Streamii issues page](https://github.com/itw-creative-works/streamii/issues). It is much easier to answer questions that include your code and relevant files! So if you can provide them, we'd be extremely grateful (and more likely to help you find the answer!)\n\n## 📚 Projects Using this Library\n[SoundGrail Music App](https://app.soundgrail.com/): A resource for producers, musicians, and DJs. \u003cbr\u003e\n\nAsk us to have your project listed! :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitw-creative-works%2Fstreamii","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitw-creative-works%2Fstreamii","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitw-creative-works%2Fstreamii/lists"}