{"id":20690617,"url":"https://github.com/notmyself/bivrost","last_synced_at":"2025-04-22T16:58:48.495Z","repository":{"id":39546979,"uuid":"184816492","full_name":"NotMyself/bivrost","owner":"NotMyself","description":"Bivrost is a asp.net core application that offers several overlay endpoints, hosts a Twitch.tv bot and bridges the two together to display chat events in OBS while streaming.","archived":false,"fork":false,"pushed_at":"2023-02-28T17:12:52.000Z","size":3341,"stargazers_count":24,"open_issues_count":34,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T16:51:18.267Z","etag":null,"topics":["asp-net-core","docker","now","twitch","twitch-bot","vuejs"],"latest_commit_sha":null,"homepage":"https://iamnotmyself.com","language":"C#","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/NotMyself.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":"2019-05-03T20:29:20.000Z","updated_at":"2024-01-12T14:46:44.000Z","dependencies_parsed_at":"2023-02-02T21:01:15.497Z","dependency_job_id":null,"html_url":"https://github.com/NotMyself/bivrost","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/NotMyself%2Fbivrost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotMyself%2Fbivrost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotMyself%2Fbivrost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotMyself%2Fbivrost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NotMyself","download_url":"https://codeload.github.com/NotMyself/bivrost/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250284803,"owners_count":21405295,"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":["asp-net-core","docker","now","twitch","twitch-bot","vuejs"],"created_at":"2024-11-16T23:13:46.831Z","updated_at":"2025-04-22T16:58:48.460Z","avatar_url":"https://github.com/NotMyself.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bivrost\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"/docs/images/bivrost-readme-header.jpg?raw=true\"/\u003e\n\u003c/p\u003e\n\n\"In Norse mythology, Bivrost is a burning rainbow bridge that reaches between Midguard and Asgard, the realm of the gods.\" - [WikiPedia](https://en.wikipedia.org/wiki/Bifr%C3%B6st)\n\n---\n\n## About\n\nBivrost is a asp.net core application that offers several overlay endpoints, hosts a Twitch.tv bot and bridges the two together to display chat events in OBS while streaming.\n\n## Getting Started\n\n### Running Locally\n\nAs long as you have the development dependencies installed, the application can be run on your bare metal machine.\n\n1. Clone the repository: `git clone https://github.com/NotMyself/bivrost.git`.\n1. Change directory into the cloned repository `cd bivrost`.\n1. Run script `scripts/local-init`.\n1. Run the command `dotnet user-secrets set BIVROST_TWITCH_BOT_USER_NAME {bot-user-name}`.\n1. Run the command `dotnet user-secrets set BIVROST_TWITCH_BOT_ACCESS_TOKEN {bot-access-token}`.\n1. Run the command `dotnet user-secrets set BIVROST_TWITCH_BOT_CHANNEL {twitch-channel}`.\n1. Run the command `dotnet user-secrets set BIVROST_TWITCH_CLIENT_ID {twitch-client-id}`.\n1. Run the command `dotnet user-secrets set BIVROST_TWITCH_CLIENT_SECRET {twitch-client-secret}`.\n   - **Note:** You must supply valid values for the **BIVROST_** environment variables, see [this](#obtaining-twitch-access-tokens) for instructions on how to obtain these values.\n1. Run script `scripts/local-start`.\n\n### Running in Docker\n\nThe application can easily be executed locally with no development dependencies using [Docker](https://www.docker.com/).\n\n1. Clone the repository: `git clone https://github.com/NotMyself/bivrost.git`.\n2. Change directory into the cloned repository `cd bivrost`.\n3. Run script `scripts/image-create`.\n4. Run script `scripts/image-start`.\n\n### Obtaining Twitch Access Tokens\n\nBivrost uses several bits of information to connect to stream chat.\n\nIn most cases, you can use your Twitch username for both the bot username and channel. This will make the bot appear as you in chat.\n\nIf you would like to have a seperate bot username from your own, you will need to create that account on Twitch and use it to generate your access token.\n\nYou will need to generate an OAuth authorization token with several specific scopes applied to it.\n\n1. Navigate to [Twitch Token Generator](https://twitchtokengenerator.com).\n2. Select the **Custom Scope Token** option in the popup dialog.\n3. Ensure the following scopes are enabled:\n   1. `user_read`\n   2. `user_blocks_edit`\n   3. **TODO:** Figure out the exact scopes needed, for now select all.\n4. Click the **Generate Token!** button.\n5. You will be redirected Twitch, authenticate if needed.\n6. Click the **Authorize** button to grant Twitch Token Generator concent to access your account with the listed scopes.\n7. Verify you are not a robot.\n8. Click the **Copy** button next to **Access Token**.\n\nBivrost also makes call directly to the Twitch APIs. This requires to you to register the application to get client crendentials.\n\n1. Navigate to your [Twitch Developer Console](https://dev.twitch.tv/console).\n1. Click the **Register Your Application** button.\n1. Add **Bivrost** to the **Name** field.\n1. Add **http://example.com** to the **OAuth Redirect URL** field.\n   - **Note:** Bivrost does not currently use oAuth based authentication, so this value is not used.\n1. Select **Application Integration** from the **Category** dropdown.\n1. Click the **Create** button.\n\n| Env Var | Note |\n|---|---|\n| BIVROST_TWITCH_BOT_USER_NAME | Twitch Account Username for Bot |\n| BIVROST_TWITCH_BOT_ACCESS_TOKEN | OAuth Access Token for Twitch Account |\n| BIVROST_TWITCH_BOT_CHANNEL | Twitch Chat Channel for Bot to join and listen. |\n| BIVROST_TWITCH_CLIENT_ID | Twitch Application Client Id |\n| BIVROST_TWITCH_CLIENT_SECRET| Twitch Application Secret |\n\n### Screen Shots\n\n#### Bivrost On Join Message\n\nWhen the bot is successfully configured, it will announce it's arrival in chat like this:\n\n![Bivrost On Join Message](/docs/images/bivrost-on-join-messsage.png?raw=true \"Bivrost On Join Message\")\n\n#### Bivrost On Message Overlay\n\n![Bivrost On Message Overlay](/docs/images/bivrost-on-message-overlay.gif?raw=true \"Bivrost On Message Overlay\")\n\n\n### External Dependencies\n\n#### .NET Core\n\n#### Node 8\n\n### Docker\n\n### Platform Dependencies\n\n- [ASP.NET Core](https://www.asp.net/mvc)\n- [Vue.js](https://vuejs.org/)\n\n### Features\n\n- [Chat Bot](docs/mockups/chat-bot/readme.md)\n\n### Architecture\n\n- [Logging](docs/logging.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotmyself%2Fbivrost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnotmyself%2Fbivrost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotmyself%2Fbivrost/lists"}