{"id":19232107,"url":"https://github.com/horusgoul/rtmp-social-multicast","last_synced_at":"2025-04-21T04:32:04.465Z","repository":{"id":53412257,"uuid":"302935277","full_name":"HorusGoul/rtmp-social-multicast","owner":"HorusGoul","description":"Want to stream to Twitch, YouTube, Facebook, and/or Periscope at the same time? That's what this project allows you to do!","archived":false,"fork":false,"pushed_at":"2021-03-30T22:51:16.000Z","size":188,"stargazers_count":49,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-29T14:34:58.614Z","etag":null,"topics":["docker","docker-compose","facebook","hacktoberfest","multicast","periscope","rtmp","rtmp-server","stream","twitch","youtube"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/HorusGoul.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":"2020-10-10T15:46:13.000Z","updated_at":"2024-12-02T08:59:36.000Z","dependencies_parsed_at":"2022-08-27T16:11:22.576Z","dependency_job_id":null,"html_url":"https://github.com/HorusGoul/rtmp-social-multicast","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HorusGoul%2Frtmp-social-multicast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HorusGoul%2Frtmp-social-multicast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HorusGoul%2Frtmp-social-multicast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HorusGoul%2Frtmp-social-multicast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HorusGoul","download_url":"https://codeload.github.com/HorusGoul/rtmp-social-multicast/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249996122,"owners_count":21358067,"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":["docker","docker-compose","facebook","hacktoberfest","multicast","periscope","rtmp","rtmp-server","stream","twitch","youtube"],"created_at":"2024-11-09T16:05:22.786Z","updated_at":"2025-04-21T04:32:04.206Z","avatar_url":"https://github.com/HorusGoul.png","language":"Shell","funding_links":["https://www.buymeacoffee.com/horus"],"categories":[],"sub_categories":[],"readme":"# RTMP Social Multicast Server\n\nWant to stream to Twitch, Youtube, or Periscope at the same time? That's what this project allows you!\n\n## Prerequisites\n\n- Git\n- Docker\n- Docker Compose\n\n## Getting Started\n\nThis guide will go through configuration and how to use it with OBS.\nMake sure to have all the prerequisites installed on your machine.\n\n1. Clone the repo\n\n```bash\n$ git clone https://github.com/HorusGoul/rtmp-social-multicast\n```\n\n2. Open the repo\n\n```bash\n$ cd rtmp-social-multicast\n```\n\n3. Create a `.env` file based on the `.env.template` file.\n\n```bash\n$ cp .env.template .env\n```\n\n4. Open and fill the `.env` file and fill it with the configuration for the platforms you want to stream.\n\n    - [Configuring YouTube](#configuring-youtube)\n    - [Configuring Twitch](#configuring-twitch)\n    - [Configuring Periscope](#configuring-periscope)\n    - [Configuring Facebook](#configuring-facebook)\n\n⚠️ \u0026nbsp;**Make sure to use a strong `RTMP_SECRET` if you plan to expose the server to the internet.**\n\n⚠️ \u0026nbsp;**Avoid changing the `RTMP_AUTH_SERVER` variable unless you know what you're doing.**\n\n5. Now let's launch everything with Docker Compose\n\n```bash\n$ docker-compose up\n```\n\n6. Time to stream! We'll use OBS in this guide, but other streaming software should support this configuration.\n\n![Obs Stream Configuration](./docs/obs-custom-server.png)\n\nIn the `Stream` configuration for OBS, select the `Custom...` service, then write `rtmp://localhost/live` into the `Server` field.\n\nThe `Stream Key` field corresponds with the `RTMP_SECRET` you defined in the `.env` file, so make sure it's the same, or you won't be able to start your streaming session.\n\n**All set! Let's go live 🔴**\n\n_If YouTube isn't receiving data from us, that means something went wrong in the process. Recheck everything or open an issue if you can't get it to work following these steps._\n\n---\n\n## Configuring YouTube\n\n_Here is stated how you can get the parameters to fill the **YouTube** section of your `.env` file._\n\nGo to https://youtube.com/livestreaming, and there you'll find this:\n\n![Secret Key and Stream URL](./docs/youtube-key-server.png)\n\n`Stream Key` corresponds with `RTMP_YOUTUBE_KEY`.\n`Stream URL` corresponds with `RTMP_YOUTUBE_SERVER`. **Make sure to add a slash (`/`) at the end of the URL if it doesn't have one**.\n\n⚠️ \u0026nbsp;**Remember setting the `RTMP_YOUTUBE_ENABLED` to `true`**\n\n---\n\n## Configuring Twitch\n\n_Here is stated how you can get the parameters to fill the **Twitch** section of your `.env` file._\n\nGo to your Twitch Dashboard following this link: https://dashboard.twitch.tv/settings/stream.\nThere you'll find your `Primary Stream Key`. We should place it\nin the **`RTMP_TWITCH_KEY`** variable.\n\n![Primary Stream Key in the Twitch Dashboard](./docs/twitch-key.png)\n\nNow you need to get the closest server to your location, for that,\nTwitch provides this website https://stream.twitch.tv/ingests/.\n\n![Website photo](./docs/twitch-server.png)\n\nOnce you pick the best server for you, copy the `rtmp://live-mad.twitch.tv/app/`\npart of the URI, that's the value we'll use for the **`RTMP_TWITCH_SERVER`**.\n**Don't copy the `{stream_key}` part, or it won't work.**\n\n⚠️ \u0026nbsp;**Remember setting the `RTMP_TWITCH_ENABLED` to `true`**\n\n---\n\n## Configuring Periscope\n\n_Here is stated how you can get the parameters to fill the **Periscope** section of your `.env` file._\n\nGo to the Periscope Producer Page following this link: https://www.periscope.tv/account/producer.\nThere you'll find your `Stream Key`. We should place it\nin the **`RTMP_PERISCOPE_KEY`** variable.\n\nWe can also find the `Server URL` that we should place in the **`RTMP_PERISCOPE_SERVER`** variable. **Make sure to add a slash (`/`) at the end of the URL if it doesn't have one**.\n\n![Secret Key and Stream URL](./docs/periscope-key-server.png)\n\n⚠️ \u0026nbsp;**Remember setting the `RTMP_PERISCOPE_ENABLED` to `true`**\n\n---\n\n## Configuring Facebook\n\n_Here is stated how you can get the parameters to fill the **Facebook** section of your `.env` file._\n\nGo to the Facebook Live Producer page following this link: https://www.facebook.com/live/producer/.\nSelect proper space you will post your live (your timeline or facebook page). In the main section you will find your `Stream Key`. We should place it\nin the **`RTMP_FACEBOOK_KEY`** variable.\n\nWe can also find the `Server URL`, but Facebook at this point uses only one URL: `live-api-s.facebook.com:443`. It is set for SSL tunneling in the stunnel4 config, so there's no need to adjust this.\n\n⚠️ \u0026nbsp;**Remember setting the `RTMP_FACEBOOK_ENABLED` to `true`**\n\n---\n\n\n## Support me\n\nFeel free to buy me a coffee if you enjoy my content 😄\n\n\u003ca href=\"https://www.buymeacoffee.com/horus\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-black.png\" alt=\"Buy Me A Coffee\" height=\"48px\"\u003e\u003c/a\u003e\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://horus.dev/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6759612?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHorus Lugo\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HorusGoul/rtmp-social-multicast/commits?author=HorusGoul\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-HorusGoul\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/HorusGoul/rtmp-social-multicast/commits?author=HorusGoul\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#maintenance-HorusGoul\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"https://github.com/HorusGoul/rtmp-social-multicast/pulls?q=is%3Apr+reviewed-by%3AHorusGoul\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#content-HorusGoul\" title=\"Content\"\u003e🖋\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/ivellios\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/200957?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJanusz Kamieński\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/HorusGoul/rtmp-social-multicast/commits?author=ivellios\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/HorusGoul/rtmp-social-multicast/commits?author=ivellios\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhorusgoul%2Frtmp-social-multicast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhorusgoul%2Frtmp-social-multicast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhorusgoul%2Frtmp-social-multicast/lists"}