Giter Site home page Giter Site logo

aaronpk / live-chat-overlay Goto Github PK

View Code? Open in Web Editor NEW
141.0 16.0 61.0 1.39 MB

Restyle the YouTube "popout chat" window so you can key it over a video to show comments on a livestream

Home Page: https://chrome.google.com/webstore/detail/live-chat-overlay/aplaefbnohemkmngdogmbkpompjlijia

CSS 27.92% JavaScript 57.15% HTML 14.93%
youtube chat chrome-extension obs

live-chat-overlay's Introduction

Live Chat Overlay

This browser extension turns the YouTube popout chat window into something that can be used to show chat comments keyed over a video. You can also bring it in to software like OBS or Lightstream Studio as a browser source!

chat-screenshot

Setup Tutorial

Installation

Google Chrome Store

The easiest way to install the extension from the Google Chrome store. Click the link below and you should see a prompt to install it in Chrome.

Manual Installation

First, download this project and unzip it somewhere on your computer. In Chrome, launch the Extensions page.

Go to Window and click Extensions (or enter this in your address bar chrome://extensions/)

window-extensions

Turn on Developer Mode

developer-mode

That will show a new set of options. Click "Load Unpacked"

load-unpacked

Choose the folder you downloaded the extension into, and you should see it now in your list of extensions!

Usage

Open up the YouTube live chat for a video, and click YouTube's "popout chat" button to open it in a new window. Or replace the VIDEOID in the URL below with your video's ID.

https://www.youtube.com/live_chat?is_popout=1&v=VIDEOID

Keying from a Computer

You'll next need to bring that into your video stream and key it out, which will depend on what software or hardware you are using. In the ATEM Mini, you can use these settings in the upstream keyer:

  • Luma key
  • not premultiplied
  • clip: 7%
  • gain: 100%

Or you can use the downstream keyer:

  • not premultiplied
  • mask:
    • top: X
    • bottom: -9
    • left: -16
    • right: 16

Adding as a Browser Source

In software such as OBS or Lightstream Studio you can pop out a remote window as a browser source, and remote control it from your main YouTube chat window.

Before you start, you'll want to make sure you change the background color in the extension settings to the word "transparent" so that the browser window will have a transparent background.

Once you've loaded the YouTube popout chat window described above, you will see a button in the YouTube chat window called "Get Overlay URL". Clicking that will reveal a URL you can copy and load into OBS or your favorite streaming platform that supports browser overlay sources.

get-overlay-url

You can open the URL on your computer too if you want to full screen it on a second monitor.

Persistent Links

There is now an option for "Persistent Session ID" to enable a persistent link for your stream so that you don't have to re-add the browser source every time. Here is how to use it.

In the options form, check "Persistent Session ID" which will show a text box with a randomly generated Session ID. This Session ID will be used for all you future chats. You can also change the Session ID in that field if you want to reuse one that you already saved in a browser source.

Note: You should always use a randomly generated ID. If you use a short word like "test", then the chats will be combined with anyone else who has used the same short word.

See this in action!

You can see this in action on many of Aaron Parecki's livestreams!

Running your own remote server

The extension defaults to pushing the chat messages through a server managed by Aaron Parecki, and the remote window is loaded from that website. The chat messages aren't stored on the server, and there is very little resource usage for this, but if you are more comfortable running this on your own server, head over to the overlay remote GitHub project for instructions.

TODO

See https://github.com/aaronpk/youtube-chat-overlay/issues

Credits

The original CSS and JavaScript originally came from a video by ROJ BTS, so huge thanks to him for the initial work!

live-chat-overlay's People

Contributors

aaronpk avatar alexanderbrevig avatar pedanticdan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

live-chat-overlay's Issues

Persistent Links

In the readme.md there is a text saying that the extension now support for persistent link, and that the options of the extension should have a "Persistent Session ID" check box, but I could not find this option in my options list. I am using 0.3.6 version (latest), and just have the following options:

image
image

Am I missing something?

Get Overlay URL stopped working

I was playing with the live chat overlay extension this evening and it was working well until it stopped :-). From studio, i pop out the chat window and see things working fine as shown in these two screenshots:

Screenshot 2022-12-01 at 9 45 26 PM

and

Screenshot 2022-12-01 at 9 47 00 PM

When I click on Get Overlay (in order to get something I can key using OBS with Ultrastudio) i see no output in the modified page:
image

of by following the URL:
image

This was working earlier so I hope I haven't tripped a rate limit. Any ideas greatly received :-)

Thx Aaron

New Remote Server URL option not saved

I’ve briefly got my own server to work. While debugging I found that Chrome automatically updated the plugin. If I change the URLs in the options settings, the Remote Server URL is not saved (or saved, but not restored).

I forked the repo and found that adding “serverURL” to the properties list on line 26 of options.js fixed that problem.

[EDIT] And adding "serverURL" to configProperties on line 206 of youtube.js fixed my last problem, which was that that chat.aaronpk.tv was always used for the serverURL not matter what the option was set to.

Remote Server URL won't save

I'm trying to use a locally hosted overlay server so that I can customize the behavior of the message and trigger the parent iframe holding the overlay to automatically dim the background (I'm using it teleprompter style to show on-air talent comments before putting them over the livestream).

But, before getting into any of that, I'm just trying to get the local server to work. I have NGINX all installed and working, but I can't get the Chrome plugin to save the Remote Server URL setting. The Popout Chat URL setting saves just fine.

Help!

Persistent Links?

I can't find the persistent links option?

It's mentioned in the docs but nowhere to be found?

Support for OBS

Hello @aaronpk, I heard you mentioned you'd like to make a version of this that is compatible with OBS.

@steveseguin built one which can be viewed at: https://github.com/steveseguin/twitch-youtube-chat-overlay-without-window-capture

Maybe it'd be interesting to merge these two projects and built together upon that foundation?

The version from Steve is built around some socket.io and sends the comments through a server. Customizable layout for how it ends up showing up in the browser source also supported by doing ones own html file.

The Extension does not give the URL to OBS due to an error HELP

error live chat extension

Unrecognized manifest key 'browser_specific_settings'.

{
"name": "Live Chat Overlay",
"description": "Restyle the YouTube popout chat so you can overlay it for livestreams",
"manifest_version": 2,
"version": "0.2.1",
"homepage_url": "https://github.com/aaronpk/YouTube-Chat-Overlay",
"icons": {
"128": "icons/icon-128.png"
},
"permissions": [
"https://youtube.com/", "https://www.youtube.com/", "https://studio.youtube.com/", "storage"
],
"content_scripts": [{
"css": ["youtube.css"],
"js": ["jquery.js", "youtube.js"],
"matches": ["https://youtube.com/live_chat
", "https://www.youtube.com/live_chat*", "https://studio.youtube.com/live_chat*"]
}],
"options_ui": {
"page": "settings/options.html"
},
"browser_specific_settings": {
"gecko": {
"id": "[email protected]",
"strict_min_version": "80.0"
}

Could you help me please?

Unable to adjust Font Size, Width, Location of Comment

First off. Love the work you've done here. The chat overlay worked amazing for the last two lives except that anything over about 150 characters cut off the bottom.

I tried to play with the features in options below and moving the numbers to positive and negative numbers resulted in no changes to the size and location of the overlay.

My apologies for being thick. But, can you add any assistance?

Screenshot 2023-11-30 003543
Screenshot 2023-11-30 003505

Chat instantly disappears when it pops up

So when I click on a chat bubble, it will briefly appear on my screen and then disappear a split second later
I thought that the new setting would be the issue, but even after setting it to 0 or 9999999999 the chat still disappears the moment it comes up. It's there for like a split second tops before it's gone again

I reinstalled the extension just to be safe, but this still doesn't fix it.
Updated OBS as well, but no dice

Please help! Am I being dumb?

Add chat comments to a timed queue

I think this would be really useful for a lot of people like me who want to highlight a lot of comments along the stream but don't want to manually be worrying about the timing, having to turn them on or off. A lot of times I've left a comment on for too long and I have to constantly be aware of what's on screen and keeping a "timer" in my head asking myself if the comment has been on long enough for people to have read it.

This is the behavior I imagine:

  • Turn option on in settings (not on by default) (alternative: add timer button to each comment so it functions independently)
  • Add chat comments to queue while the stream is going on
  • Shows one comment at a time for 5 seconds (maybe configured option later?) one at a time until the queue is clear
  • Option to clear queue
  • Extra: Pin a comment so it's on regardless of the queue

This is a great extension, by the way. I've been using it a lot lately, great job Aaron! :)

OBS panels

Good morning everyone... I saw a good idea while using this amazing chat!

It would be great if we had a "dashboard" in a url to use within the OBS panels, thus saving the pc's memory, since I wouldn't need to keep the browser open!

I don't know the complexity of this, but it is something that could be an excellent upgrade!

This text was written with the help of google translator, I apologize for any errors!

Word wrap...

One thing I notice is at least for me. There is no word wrap functioning. So everything just trails off on a single line not wrapping to a new line. Any ideas?

Member Milestone Chat Issue

There is an issue when channel members use their monthly "milestone chat". It incorrectly displays the "New Member" badge.

Screen Shot 2022-10-04 at 4 25 43 PM

Restream Support

In one of your recent streams you said that you might be adding support for Restream to the extension. Any updates? Also, did you add the superchat confetti?

Word Wrapping

Hey Aaron,

I have looked over the setting and noticed the is no wrapping function, I noticed that it only shows a limited number of characters and is not accommodating the Max200 characters from the youtube chat, can you provide me with some guidance on how to resolve this issue, I would greatly appreciate it if provide me with that bit of info.
Thanks in Advance,
ben

Get Overlay has also stopped working for me

When I click on the Get Overlay button instead of getting the usual chat.aaronpk.... url and link... it now is just the pop-out youtube url with an additional anchor appended to it [which I tried using to no avail].

This is a VERY awesome module and I use it all the time, happy to support a Patreon if you set one up just to keep this thing running and up to date!

Add option to auto-hide messages

When this checkbox is checked, clicking a message should show the message immediately and then hide the message after some amount of time. The time should probably be hardcoded, but might vary based on the length of the message.

I cannot edit the appearance

When I change the colors in css, I can see the changes in the sample tab but not in OBS. I'm changing the file "youtube.css".

Super Sticker support

I grabbed the HTML for a super sticker from a recent livestream:

<yt-live-chat-paid-sticker-renderer class="style-scope yt-live-chat-item-list-renderer" id="ChwKGkNOV29tYmV6Z080Q0ZUVGlPQW9keHU4R1Z3" style="--yt-live-chat-paid-sticker-chip-background-color:rgba(30,136,229,1); --yt-live-chat-paid-sticker-chip-text-color:rgba(255,255,255,1); --yt-live-chat-paid-sticker-background-color:rgba(21,101,192,1); --yt-live-chat-paid-sticker-author-name-text-color:rgba(255,255,255,0.701961);"><!--css-build:shady--><div id="card" class="style-scope yt-live-chat-paid-sticker-renderer"><div id="author-info" tabindex="0" class="style-scope yt-live-chat-paid-sticker-renderer"><yt-img-shadow id="author-photo" class="no-transition style-scope yt-live-chat-paid-sticker-renderer" loaded="" style="background-color: transparent;"><!--css-build:shady--><img id="img" class="style-scope yt-img-shadow" alt="" width="40" height="40" src="https://yt4.ggpht.com/ytc/AAUvwngES-SxML8bNFHvkMEOoFatVt4G1dUtGflnCRcmdA=s32-c-k-c0x00ffffff-no-rj"></yt-img-shadow><dom-if restamp="" class="style-scope yt-live-chat-paid-sticker-renderer"><template is="dom-if"></template></dom-if><dom-if class="style-scope yt-live-chat-paid-sticker-renderer"><template is="dom-if"></template></dom-if><div id="content" class="style-scope yt-live-chat-paid-sticker-renderer"><span id="timestamp" class="style-scope yt-live-chat-paid-sticker-renderer">10:33 AM</span><div id="content-primary-column" class="style-scope yt-live-chat-paid-sticker-renderer"><div id="author-name" class="style-scope yt-live-chat-paid-sticker-renderer">YouTube Dave</div><span id="price-column" class="style-scope yt-live-chat-paid-sticker-renderer"><yt-formatted-string id="purchase-amount-chip" class="style-scope yt-live-chat-paid-sticker-renderer">$1.99</yt-formatted-string><yt-formatted-string id="deleted-state" class="style-scope yt-live-chat-paid-sticker-renderer"><!--css-build:shady--></yt-formatted-string></span></div></div></div><div id="sticker-container" class="style-scope yt-live-chat-paid-sticker-renderer sticker-loaded"><yt-img-shadow id="sticker" notify-on-loaded="" tabindex="0" class="style-scope yt-live-chat-paid-sticker-renderer no-transition" loaded="" style="background-color: transparent;"><!--css-build:shady--><img id="img" class="style-scope yt-img-shadow" alt="Director's chair with the words &quot;ON SET&quot;" width="40" height="40" src="//lh3.googleusercontent.com/KP--Ps9ho0bWIFUA9lqnCJ1kI4Z721WAdOMa0zUEFLLVpEjH6VGcOfmqqBILfeHQR3bTR0o9CXtKdUqStQ=s40-rp"></yt-img-shadow></div><yt-formatted-string id="dashboard-deleted-state" class="style-scope yt-live-chat-paid-sticker-renderer"><!--css-build:shady--></yt-formatted-string><div id="menu" class="style-scope yt-live-chat-paid-sticker-renderer"><yt-icon-button id="menu-button" class="style-scope yt-live-chat-paid-sticker-renderer"><!--css-build:shady--><button id="button" class="style-scope yt-icon-button" aria-label="Comment actions"><yt-icon icon="more_vert" class="style-scope yt-live-chat-paid-sticker-renderer"><svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="style-scope yt-icon" style="pointer-events: none; display: block; width: 100%; height: 100%;"><g class="style-scope yt-icon"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z" class="style-scope yt-icon"></path></g></svg><!--css-build:shady--></yt-icon></button><paper-ripple class="style-scope yt-icon-button circle"><!--css-build:shady-->
    

    <div id="background" class="style-scope paper-ripple" style="opacity: 0.005252;"></div>
    <div id="waves" class="style-scope paper-ripple"></div>
</paper-ripple></yt-icon-button></div></div><div id="inline-action-button-container" class="style-scope yt-live-chat-paid-sticker-renderer" aria-hidden="true"><div id="inline-action-buttons" class="style-scope yt-live-chat-paid-sticker-renderer"></div></div></yt-live-chat-paid-sticker-renderer>

problem in YouTube chat

Hi there, when i use this amazing tool by OBS, and i click on an comment to show on my stream, if the comment long a bit, not all the text appear. how to make the comment show fully in one line ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.