{"id":18711597,"url":"https://github.com/hennamann/live-chat-question-flagger","last_synced_at":"2025-04-12T11:41:00.110Z","repository":{"id":49582043,"uuid":"100294065","full_name":"Hennamann/Live-Chat-Question-Flagger","owner":"Hennamann","description":"A Nodejs Web app for flagging live chat comments as questions, and generating lower thirds.","archived":false,"fork":false,"pushed_at":"2023-03-01T09:01:00.000Z","size":210,"stargazers_count":21,"open_issues_count":8,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-26T06:23:35.633Z","etag":null,"topics":["express-js","facebook-live","livestream","lower-thirds","nodejs","socket-io","twitch","youtube-live"],"latest_commit_sha":null,"homepage":"","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/Hennamann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":".github/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}},"created_at":"2017-08-14T17:45:53.000Z","updated_at":"2024-07-25T03:08:06.000Z","dependencies_parsed_at":"2024-11-07T12:44:15.040Z","dependency_job_id":"7f1ffb21-864c-4089-ba24-b4fa6122d512","html_url":"https://github.com/Hennamann/Live-Chat-Question-Flagger","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hennamann%2FLive-Chat-Question-Flagger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hennamann%2FLive-Chat-Question-Flagger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hennamann%2FLive-Chat-Question-Flagger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hennamann%2FLive-Chat-Question-Flagger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hennamann","download_url":"https://codeload.github.com/Hennamann/Live-Chat-Question-Flagger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248563014,"owners_count":21125193,"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":["express-js","facebook-live","livestream","lower-thirds","nodejs","socket-io","twitch","youtube-live"],"created_at":"2024-11-07T12:39:57.294Z","updated_at":"2025-04-12T11:41:00.077Z","avatar_url":"https://github.com/Hennamann.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Live Questions and Answers Lower Third Generator\n\nA Nodejs Web app for flagging live chat comments as questions, and generating lower thirds.\n\n  - Enable questions and answers on Live Streams.\n  - Show questions from your audience as lower thirds.\n  - Encourage more interaction from your Live audience.\n\n### How It Works\n\n![YouTube Live Chat Question Flagger](https://pro2-bar-s3-cdn-cf1.myportfolio.com/405f55c1b61f7dacd9f668750ad16523/2f320fb5-cf41-4c06-a115-a3d1fa87e40a_rw_1920.png?h=92a4275944c023755a7130f4764fff68)\n\n* Live chat stream from YouTube livestream is displayed\n* Click the \"Mark as Question\" button to flag a question.\n* Questions get highlighted in yellow.\n* Click \"Generate Lower Third\" to send the question to a static lower-third URL at /lowerthird\n\nYou can now use the generated lowerthird in a livestreaming app like OBS.\n\n### What It Looks Like\n\n![YouTube Live Chat Lower Third for Questions](https://musicradiocreative-community.s3-eu-west-2.amazonaws.com/original/1X/ef34d75e879646d473eca1ff18a633a7c390912c.jpg)\n\n### Installation\n\nThis app requires [Node.js](https://nodejs.org/) v6+ to run.\n\nThese instructions assume you are using Debian.\n\nInstall the dependencies and clone the repo.\n\n```sh\ncurl -sL https://deb.nodesource.com/setup_6.x -o nodesource_setup.sh\nbash nodesource_setup.sh\napt-get install nodejs build-essential\ngit clone https://github.com/Hennamann/Live-Chat-Question-Flagger\n```\n\nDepending on what platforms you want to support you will need to fill in some info:\n\n#### YouTube\nIf you want to support YouTube you need a YouTube auth key instructions can be found here: https://developers.google.com/youtube/registering_an_application You will also need to find your YouTube channel ID, instructions here: https://support.google.com/youtube/answer/3250431 \n\n#### Facebook\nFacebook requires a user access token from your personal facebook account, these can be obtained from here: https://developers.facebook.com/tools/explorer/ You will need a FaceBook application tool to do so. (User access tokens last for 1 month by default but can be extended to last for two months on this page: https://developers.facebook.com/tools/debug/accesstoken/). You will also need your facebook userid or pageid, the api should work with the id found in the url for you FaceBook page or user page, but you can also use this site to be 100% sure: https://findmyfbid.com/\n\n#### Twitch\nTwitch is really straightforward to setup, simply grab your Twitch username and you're set. \n\n\nOnce you have the information you need, simply fill in the correct fields in the auth.example.json file and save it as auth.json doing something like this:\n```sh\ncd YouTube-Live-Chat-Question-Flagger\ncp auth.example.json auth.json\nnano auth.json\n```\nDon't worry if you don't use some of the live stream services, the server will ignore them as long as you avoid starting the apis for them (more on this later in the README).\n\nInstall Node Modules.\n\n```sh\nnpm install\n```\n\n### Running The App\n\nStart the app!\n\n```sh\nnode index.js\n```\n\nGo to http://localhost:8080 to see the app in action.\n\nView the lowerthird at http://localhost:8080/lowerthird.\n\nVisiting the site at this point will reveal a fairly empty page, this is because you need to start the different live stream api pullers. If you have added API info for all the different services you can simply visit http://localhost:8080/startall and http://localhost:8080/stopall to stop the API pulllers. If you are not running all of them you have to manually use the start webhooks for the services you are using:\n* **YouTube:** http://localhost:8080/startyt and http://localhost:8080/stopyt\n* **FaceBook:** http://localhost:8080/startfb and http://localhost:8080/stopfb\n* **Twitch:** http://localhost:8080/starttw and http://localhost:8080/stoptw\n\n### Running The App Continously\n\nTo run the app continously you can use [forever](https://www.npmjs.com/package/forever):\n\n```sh\nnpm install forever -g\nforever start index.js\n```\n\nThis will run the server even when you leave your ssh session. \n\nYou can also use Screen, which comes bundled with almost any Linux installation:\n\n```sh\nscreen -S server\n```\n\nTo detach yourself from the screen press Ctrl+A then D separately. \n\n### Start The App on Boot Using Systemd\n\nCreate a service file for the application:\n\n```sh\n/etc/systemd/system/livechat.service\n```\n\nInclude this inside the service file (modify slightly to match your setup):\n\n```sh\n[Service]\nExecStart=/usr/bin/node /root/Live-Chat-Question-Flagger/index.js\nRestart=always\nStandardOutput=syslog\nStandardError=syslog\nSyslogIdentifier=node-livechat\nUser=root\nGroup=root\nEnvironment=NODE_ENV=production\n\n[Install]\nWantedBy=multi-user.target\n```\n\nEnable and start the service:\n\n```sh\nsystemctl enable livechat\nsystemctl start livechat\n```\n\nYou can restart and/or stop the service with the following commands:\n\n```sh\nsystemctl restart livechat\nsystemctl stop livechat\n```\n\n### TODO\n* **Add authentication:** As it stands there is no authentication for the app, meaning anyone with the url can flag comments and generate lowerthirds.\n* **Improve the Twitch support:** This might prove difficult as Twitch does not have any APIs for getting twitch comments outside of the overly compicated IRC system. \n\n### Credits\nThis Nodejs app uses the following node modules:\n\n* [Socket.io](https://socket.io/)\n* [Express.js](https://expressjs.com/)\n* [youtube-live-chat](https://www.npmjs.com/package/youtube-live-chat) (A slighly modified version: https://github.com/Hennamann/youtube-live-chat) \n* [facebook-live-chat](https://www.npmjs.com/package/facebook-live-chat)\n* [jsesc](https://www.npmjs.com/package/jsesc)\n* [unescape-js](https://www.npmjs.com/package/unescape-js)\n* [twitch-webchat](https://www.npmjs.com/package/twitch-webchat)\n* [event-chains](https://www.npmjs.com/package/event-chains)\n\nThanks to Mike Russell and Music Radio Creative for coming up with the idea, and helping the development of the app!\n\n### Development\n\nWant to contribute? Great! Just make a pull request with your changes and we will review it ASAP!\n\nLicense\n----\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhennamann%2Flive-chat-question-flagger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhennamann%2Flive-chat-question-flagger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhennamann%2Flive-chat-question-flagger/lists"}