Skip to content

Instantly share code, notes, and snippets.

@steveseguin
Last active May 8, 2024 08:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save steveseguin/274f00dc5667f7c9bfa782503942744b to your computer and use it in GitHub Desktop.
Save steveseguin/274f00dc5667f7c9bfa782503942744b to your computer and use it in GitHub Desktop.
Discord #update channel mirrored output
Daily progress updates and nightly new features for VDO.Ninja can be view at:
https://updates.vdo.ninja
You can also Join the Discord server at https://discord.vdo.ninja and follow the channel #updates
[
{
"content": "",
"timestamp": 1709864386.590869,
"name": "steveseguin",
"msgid": "1215484075091959858",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1215484074890891294/image.png?ex=65fceac2&is=65ea75c2&hm=2e8665c8d67ae3112e1dc59398f7f307031d021a640e72fc0815b295a35a0811&",
"desc": null
}
]
},
{
"content": "I've managed to get **USB video (hdmi/UVC) support added in for Android** this week. It did take re-writing the entire existing native app from scratch though, in a different language, so it's not entirely at feature-parity with the current version in the play store. As such, for now it's only available as a sideloadable APK file for direct download.\n\nlink: https://drive.google.com/file/d/1L8meslXPEzivocH3wz48abNtJ926hQUr/view?usp=drive_link\n\nI still have more work to do on the app, as its fairly rough around the edges still. I'll release it to the app store down the road once I get a few more bugs worked out and at feature parity. If you do try it out, please report issues.\n\nAs for iOS users, I think iPhone 15 Pros already might have USB/UVC support, however I've not confirmed that myself yet. I've had a couple users report however that USB devices worked with their newer iPads and iPhone 15 Pros.",
"timestamp": 1709913647.111682,
"name": "steveseguin",
"msgid": "1215690688713457674",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- You can add text to the &bigbutton option now; Just pass the text string via the URL parameter.\n - eg: `https://vdo.ninja/?webcam&autostart&bigbutton=LAUNCH`\n- the big button gets smaller on small screens, so it will actually fit on small displays now\n- some minor CSS improvements to it\n\n** on alpha and production",
"timestamp": 1710004827.564573,
"name": "steveseguin",
"msgid": "1216073126342033448",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1216073126106894406/1.png?ex=65ff0f5a&is=65ec9a5a&hm=cebd34eb05bf6086174dc609a930c8f1dc744fb5f1f24d2871cecddd643001d1&",
"desc": null
}
]
},
{
"content": "- Added an option called `&limitbadges=2` to the SocialStream dock page.\n - you can change the total from 2 to 0 to whatever\n - helps keeps things clean\n - can be found as a toggle under dock -> visibility",
"timestamp": 1710007957.566914,
"name": "steveseguin",
"msgid": "1216086254601371828",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1216086253951258684/image.png?ex=65ff1b94&is=65eca694&hm=65a31ef9f822d51cfd0e2a145cc6dd1051c7e4a2b0d2430de207e3450a349c6f&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1216086254354038865/image.png?ex=65ff1b94&is=65eca694&hm=50449ee24caf78f7bc2855d79f3bec5c3b6d4b6670490df52b14b5120faeea8c&",
"desc": null
}
]
},
{
"content": "- added an option called &rows, which lets you specify how many rows to use in the VDO.Ninja auto mixer.\n - eg: https://vdo.ninja/alpha/?scene=0&room=123123123333&cover&rows=1,1,1,2&fakeguests=3\n - you'll notice the parameter can take comma separated values, or just 1 value if needed\n - row=1 will be just one row, regardless of how many guests, and row=1,1,1,2 for example will be 1 row if 1 guest, 2 guest, or 3 guest, but two rows (2x2) if 4 guests. If more than than, the guests will squeeze into still just two rows.\n** on alpha for testing",
"timestamp": 1710028655.695068,
"name": "steveseguin",
"msgid": "1216173069714849853",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "",
"timestamp": 1710028698.773117,
"name": "steveseguin",
"msgid": "1216173250283966474",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1216173250045022219/image.png?ex=65ff6c9a&is=65ecf79a&hm=6c31e5f665b08b62fa31a9fa423850c76beec1ea1cf65faf5b545794228858b9&",
"desc": null
}
]
},
{
"content": "- I added an initial proof of concept \"message history\" to Social Stream.\n - via the dock page, a creator can right-click and select Message history for a user in chat, to judge whether to block them or not.\n - the last 10 messages for that user will be displayed on screen, as a modal pop up.\n - messages are stored to the local disk; there are no ways to export the history at the moment, but the data does clear when you remove the extension.\n - I see a lot of potential for this feature long term, with many applications, but curious to hear feedback\n - you'll need to update the extension (if using the extension) to enable this feature",
"timestamp": 1710265697.101759,
"name": "steveseguin",
"msgid": "1217167291737702524",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1217167291087720468/image.png?ex=66030a60&is=65f09560&hm=95c79a1c0099359e18fd4d8e5d96fc28e4a74f3dc21b6a55eb2c87b1e7551bbe&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1217167291741900800/image.png?ex=66030a60&is=65f09560&hm=0523d6b701d6619ba191e50461ddd6fb6d58e4d94a03b85c8c03b9d1bf8e42ad&",
"desc": null
}
]
},
{
"content": "- updated the **vdo.ninja** iframe API a bit\n - timestamps for chunked video/audio are shared with the parent iframe, if you want to control buffers/delays better yourself\n - there's way to control the buffer delays via the iframe api, added the other week\n - added another way to grab an image from vdo.ninja and have it uploaded to the iframe parent\n - this isn't the same as streaming the raw frame up to the iframe, which might not be possible on cross origins, however this image method might work\n - you will need to request at an interval yourself to keep the image stream flowing at the moment; I only upload one image per request",
"timestamp": 1710552543.643317,
"name": "steveseguin",
"msgid": "1218370413571080294",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1218370413755895818/image.png?ex=66076ade&is=65f4f5de&hm=1536e1f56612dfe815ee696fe888122b42fc35be36e0de3615a496fd26bd37ab&",
"desc": null
}
]
},
{
"content": "- when selecting `&quality=0` , aka 1080p60, I have the default video bitrate now at 4-mbps, instead of 2.5. \n- when you select &quality=2k (aka, `-3`), it will be 6-mbps by default, which is fairly suitable I think.\n- when you select &quality=4k (aka, `-2`, it will be 8-mbps by default now. You can't really do 4k with 2.5-mbps, so changing the defaults makes sense I guess.\n- you can set &quality to 4k or 2k or 1080p, or 1440p, or fhd, or hd, or 720p, or high, or low (360p). A bunch of values can be used now instead of just &q=0, as numbers might not be as clear as words, so I have a list of common words. \n\n** all these changes are on alpha for testing and feedback; https://vdo.ninja/alpha/",
"timestamp": 1710552861.097711,
"name": "steveseguin",
"msgid": "1218371746889994410",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- added an `&audience` option to **VDO.Ninja** that allows you to essentially \"securely\" publish a stream for the purpose of public consumption on a website or such. \n - eg: you want to embed a view link onto your website, but you don't want others to publish to your page when you're not online.\n - what I mean by 'secure' is that knowing the stream ID isn't enough to publish to the same stream ID. You also need to know the publishing token, which only the publisher should ever know.\n - disclaimer: p2p connection may still leak public IP address and making p2p connections with untrusted sources is generally not advisable either as zero-day exploits may exist.\n- The public viewing audience will have access to an audience token, which tells the system the stream ID is of a special type.\n - Without that audience token they won't be able to view the stream. \n - The stream ID is a bit technically pointless when using the &audience parameter, but it's still needed to avoid breaking existing code.\n\nso, an example of how these links would look in practice:\nhttps://vdo.ninja/alpha/?audience=12345abcPublishingToken&push=JkYwyxy (publish)\nhttps://vdo.ninja/alpha/?audience=HrDrNy3jiA50QzlU&view=JkYwyxy (view)\n\n- notice that the publisher has a different &audience value than the viewers. This is the magic.\n - Keep your own publishing token unique and private\n - I currently assume if you are using &view, you're a viewer, and &push, I assume you're a publisher.\n- This only works with one stream at a time; rooms won't work really either, but passwords should mostly work.\n- You can find the public audience link in the header; it should show up every time unless using &cleanoutput\n- If someone is already publishing, and you publish a second time, existing p2p connections won't close, but p2p connections will connect to the new publisher. (this may change based over time)\n\n** on alpha for testing. I may change things up a bit still, so this all isn't 100% set in stone yet.",
"timestamp": 1710650881.315826,
"name": "steveseguin",
"msgid": "1218782872954208326",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "",
"timestamp": 1710651518.051763,
"name": "steveseguin",
"msgid": "1218785543551451176",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1218785543371100200/image.png?ex=6608ed7d&is=65f6787d&hm=5ab0e080a0ca1278b7ad302ed44bd05c8b0e32088225f6c8ce697b9bd7a2cbbd&",
"desc": null
}
]
},
{
"content": "- when using the vdo.ninja IFRAME API, if you pass a value with the keyname \"cib\" along with your request object, you'll get that same cib value back with the response, assuming there is a response.\n - this is useful as a callback (or context) ID, so you know what response was triggered by what request.\n - the http/wss API already had something like this, but it's been extended to the iframe API in most cases now also.\n** on alpha",
"timestamp": 1710695718.203581,
"name": "steveseguin",
"msgid": "1218970932539031644",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- added a `&preset` option to VDO.Ninja, which lets you have pre-configured URL parameters set, using a hosted `presets.json` file containing the list of presets available\n - I may add additional preset options to the official preset file; for now there are a few test options available here that you play with, listed here: https://vdo.ninja/alpha/presets.json\n - I suppose you can make pull requests to the vdo.ninja github if you want to add more official preset options, for your own use, or ask me to add more.\n - please notice that it's in JSON format; either an array or object is allowed, but it needs to be valid json.\n - If as an array, you pass an index+1 value, but if object, you can use strings for preset names\n - Examples of the &preset parameter in use: https://vdo.ninja/alpha/?preset=green and https://vdo.ninja/alpha/?preset=4k\n - you can add additional URL parameters as well still, such `https://vdo.ninja/alpha/?preset=green&push=xxxx&webcam&autostart`\n - an exception is if you can pass an obfuscated '&i=xxxx' strings; you can't mix and match parameters in that case\n - if no value is passed as a value, preset=1 is the default then.\n\n** on alpha and on github, if you want to modify the presets file with your own options",
"timestamp": 1710701699.439184,
"name": "steveseguin",
"msgid": "1218996018713071616",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1218996018788696094/image.png?ex=6609b182&is=65f73c82&hm=8482bf0ecee39919d14848a7ebf197209396938ba6d1cead2cc08bcf47cc9920&",
"desc": null
}
]
},
{
"content": "- I added a new way to connect to the API websocket servers. Instead of having to join the websocket via JSON after connecting, you can connect right away by using URL routes. \n - In the case of Social Stream, if you wanted to listen for the stream of chat messages, assuming you enable the toggle in the extension, you can use this:\n - format: `wss://api.overlay.ninja/join/SESSIONIDHERE/INCHAN/OUTCHAN`\n - so for example, to just listen: `wss://api.overlay.ninja/join/xxxabc123/4`\n - I'm hoping this all makes it easier to connect and listen to messages, especially for apps that don't make it easy to send initialization messages. \n - An immediate use case is to pass captured messages from Social Stream to Streamer Bot, using websockets, in a simple manner.\n** this change is live now.",
"timestamp": 1710716973.46309,
"name": "steveseguin",
"msgid": "1219060083997278338",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- if uploading recordings to Google Drive via VDO.Ninja, you can now use `&recordfolder` to specifiy the folder the file is saved to.\n - the default folder, if not specified, is \"recordings\", and it will use the gdrive root folder if you pass no value to the parameter.\n- file extension names are added now to files uploaded to google drive\n- if self hosting vdo.ninja, you can get your own API/Client ID from google and specify it via the index.html, if you wish to use the Google Drive feature on your own domain; at least once I push this change to github.\n- fyi, if you're not aware of this good drive feature, I've snuck in a button some months back that lets you stream a guest's video directly to the director's google drive account, avoiding the need for guests to manually upload recordings after the fact.\n - please report bugs, feedback, and issues if you do use it. thank you!\n\n** changes on alpha at vdo.ninja/alpha/",
"timestamp": 1710805110.722394,
"name": "steveseguin",
"msgid": "1219429757851140108",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "",
"timestamp": 1710805264.786224,
"name": "steveseguin",
"msgid": "1219430403916435518",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1219430403488612454/image.png?ex=660b4610&is=65f8d110&hm=8eb423ae001733a66dfaa6a35dcd92178549efe26eb54935226c40987c26da8e&",
"desc": null
}
]
},
{
"content": "",
"timestamp": 1710805285.27208,
"name": "steveseguin",
"msgid": "1219430490977603594",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1219430490772344832/image.png?ex=660b4624&is=65f8d124&hm=39ffe4547263a4f4b6e6fdc997dd14eb4ad0a4013048ef473754d73678b05935&",
"desc": null
}
]
},
{
"content": "- It's easier now to adjust the session ID or password now in Social Stream. \n - this is especially useful for the desktop app version, which lacked a way to do this before",
"timestamp": 1710894964.158698,
"name": "steveseguin",
"msgid": "1219806629503959143",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1219806629437112340/image.png?ex=660ca473&is=65fa2f73&hm=891efa49f4ca39a1e9dca959b1725802823ae60258f2b26b5b955e022eced413&",
"desc": null
}
]
},
{
"content": "- The **SocialStream** standalone app updated for mac/PC\n - the overlay pop out windows will be transparent now if transparent parameter set\n - last position/size of the pop out window will be remembered now\n - facebook will work a bit better now; but not perfect\n - core browser engine updated to newest version\nhttps://github.com/steveseguin/social_stream/releases/tag/0.1.20",
"timestamp": 1710912683.917551,
"name": "steveseguin",
"msgid": "1219880952688283790",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- you can now control which 'slot' a guest is in via the API (https or wss), when using the **vdo.ninja** mixer app or when using &slotsmode\n\nThe API structured use, via HTTP at least, is as follows:\n\n`https://api.overlay.ninja/APIKEY/setslot/{streamID-or-order-position}/{slot-target-value}`\n\nexamples:\nhttps://api.overlay.ninja/APIKEY/setslot/DskqhVF/5\nhttps://api.overlay.ninja/APIKEY/setslot/1/3\n - I also have fixed the 'forward' option to return true if successful now; it will not always will return false.\n - I also added the 'transfer' as an alias forward, so you can use either terminology now if that helps.\n\n** available on vdo.ninja/alpha/ for testing",
"timestamp": 1710918029.34739,
"name": "steveseguin",
"msgid": "1219903373113819156",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- The offline-deployment version of VDO.Ninja has been updated by @yuu__koito to include a Docker deployment option\n - they also updated and synced the offline-deployment code with newer handshake code I had elsewhere \ud83d\ude4f\nhttps://github.com/steveseguin/offline_deployment",
"timestamp": 1711305602.611714,
"name": "steveseguin",
"msgid": "1221528972941201600",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- added an option to beep (and custom beep) on the index/featured chat page of Social Stream",
"timestamp": 1711320593.448511,
"name": "steveseguin",
"msgid": "1221591848473071746",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1221591848305426552/image.png?ex=66132310&is=6600ae10&hm=c2ba251951af0eda8c6239db57f969487d89293479c1b5a6c33c60add2c40a61&",
"desc": null
}
]
},
{
"content": "- added an option in the SocialStream dock page to specify which destination to respond to messages at. \n - if none selected, it goes to all of them\n - if any are selected, it goes to just those\n - it resets when you refresh the dock page",
"timestamp": 1711320705.92992,
"name": "steveseguin",
"msgid": "1221592320252710964",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1221592319698931792/image.png?ex=66132381&is=6600ae81&hm=b0676cd827e34d2d1177e7ba71f70bd42618f0bd0eeb0d957a907d51bd52656d&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1221592319996989471/image.png?ex=66132381&is=6600ae81&hm=015634aa065942bdc09546f9e4665e08e36a5326b0accc6dafbd188c8864b412&",
"desc": null
}
]
},
{
"content": "- &beepvolume added to socialstream\n - there's a toggle that will set it to 30% volume\n - you can manually pass a custom volume level, as a percent value, for a custom volume however\n - works with dock and index pages",
"timestamp": 1711321582.606561,
"name": "steveseguin",
"msgid": "1221595998405525654",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1221595998216917242/image.png?ex=661326ee&is=6600b1ee&hm=cf765a6defd4e5d0e60c7dfe12134ad25769cb588719f25ff7849e3bf4b0d329&",
"desc": null
}
]
},
{
"content": "- random fixes for socialstream, such as svg image support added to twitch chat\n\n- with the vdo.ninja mixer, I won't pause the videos that are not in the mix anymore\n - recently it seems pausing videos drops the bitrate on restart, so I can't pause things anymore\n - adding &hiddenscenebitrate=0, on the scene link, can revert this change though.\n- if using &whitebalance, &exposure, or &focus, and the value that's passed isn't supported by the camera, I'll try now to fallback to it still being set to 'manual', rather than auto.\n - there's going to be an error in the console saying unsupported constraint, if the value isn't supported.\n** on alpha",
"timestamp": 1711439880.322866,
"name": "steveseguin",
"msgid": "1222092174905184317",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- pushed a fix for X/Twitter to socialstrem\n - X/Twitter now supports avatars, so that's added also\n - dark names on Twitter will not be colorized",
"timestamp": 1711524745.298408,
"name": "steveseguin",
"msgid": "1222448124233252964",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- If you pass the value 'auto' to the language selector in VDO.Ninja, it will try to use your system's local language preference to select the site's translation file:\n - eg: https://vdo.ninja/alpha/?ln=auto\n - useful for having guests join with their local language preference already selected.\n - it will try , for example in my case \"en-ca\" first, and if that's not found, it will then try \"en\" - so a more generic option. It will not do anything if nothing is found though.\n** available on alpha for testing",
"timestamp": 1711581973.678811,
"name": "steveseguin",
"msgid": "1222688156399439892",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- updated Electron Capture app\n - fixed an issue where the edit URL / reload / back didn't always work.\n - https://github.com/steveseguin/electroncapture/releases/tag/2.18.0\n\n- made the vdo.ninja/alpha/whip page a bit more mobile friendly\n- improved messaging for users with no ssl when trying to whip push\n\n- increased the message history for socialstream to 100\n- fixed some emoji issues with svgs in socialstream",
"timestamp": 1711669630.733774,
"name": "steveseguin",
"msgid": "1223055817729904841",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- added `&viewslot=N` to VDO.Ninja, which lets you view a specific slot only, on a scene link, assuming the director is using &slotmode also\n - Assuming a guest is set to slot 1, then you can do &viewslot=1 on a scene link to see it.\n - eg: `/?scene&viewslot=1&room=ROOMNAME`\n - This is a lot like doing &scene=N and adding a guest to scene N, except for slots; pros and cons with this approach.\n - Just noting that guests can already join with &slot=N added to their URL, to specify which slot they want to auto-join, if the director has this slot mode set. You can't do the same thing with a scene.\n - &viewslot disables the use of layouts, but you can change which video is in a slot dynamically as a director. It's one-video only. No auto-mixing supported either.\n - to prevent overloading the cpu/network of guests when using multiple scenes in this way, the only video that is connected to a scene in this mode is the one that's visible. \n - `&nohiddensceneoptimization` was added as a way to prevent the non-visible elements in a scene from optimizing, if you want to avoid the ramp-up in quality issue seen when changing what video is assigned to a slot.\n - `&hiddenscenebitrate` can be used to specify a custom bitrate when a video is hidden of course, this was always available, and 0 is default (0 bitrate when not visible)\n\n** added to alpha",
"timestamp": 1711690403.456169,
"name": "steveseguin",
"msgid": "1223142944362725406",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1223142944123654144/image.png?ex=6618c7a2&is=660652a2&hm=4413f4928bd6f77b37b304fcfd43504bbe3a28c2741b2f81be788d680d80e093&",
"desc": null
}
]
},
{
"content": "** fyi, There's a small chance I'll push alpha to production tonight. We'll see.",
"timestamp": 1711690510.061706,
"name": "steveseguin",
"msgid": "1223143392419250187",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- `&custombeep` and `&beepvolume` added to vdo.ninja/alpha/\n - these are the same commands I added to social stream, except now on vdo.ninja",
"timestamp": 1711692321.23895,
"name": "steveseguin",
"msgid": "1223150988937138196",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- I'll be giving production a push. if you have issues, do a hard browser refresh. should be finished in a few minutes",
"timestamp": 1711695309.232626,
"name": "steveseguin",
"msgid": "1223163521496256552",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "\ud83c\udf31 **VDO.Ninja was updated to v25.0** on production at 3AM EST.\n \n- if you have issues with this new version, you can access the previous version at https://vdo.ninja/v24/ or on the backup site at https://backup.vdo.ninja\n - Please consider doing a hard refresh of your browser sources in OBS to clear out old cache, especially if facing new issues.\n\n(I'll figure out what to do for release notes; I currently don't have any.)",
"timestamp": 1711695770.957625,
"name": "steveseguin",
"msgid": "1223165455959592995",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1223165456547053681/image.png?ex=6618dc9a&is=6606679a&hm=11669bdf61b00f328cffe4d2f9321d22ba13e2e4fb80a09f9edfe1132f1dd1bc&",
"desc": null
}
]
},
{
"content": "- made the buttons I embed into twitter.com opt-in for SocialStream\n- added support for Discord embeds (often via bots) to Socialstream as well\n - the embedded content doesn't exactly render that hot, but it's something",
"timestamp": 1711742932.628404,
"name": "steveseguin",
"msgid": "1223363267880157184",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1223363267574104135/image.png?ex=661994d3&is=66071fd3&hm=8ad250bd7d4e7480ae7d14b9d1056778eab6005a454c5efa6d9c14b1deefcf1d&",
"desc": null
}
]
},
{
"content": "- support for openstreamingplatform was added to sociastream.ninja",
"timestamp": 1711866446.486106,
"name": "steveseguin",
"msgid": "1223881322821586944",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- `&pausepreview` (&dpp) added to the director's control center\n - after a few seconds, the video of newly joined guests will pause.\n - on vdo.ninja/alpha",
"timestamp": 1712029164.719089,
"name": "steveseguin",
"msgid": "1224563812548739164",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- the bttv feature toggle in social stream now works with twitch channels, and global bttv emotes work everywhere; youtube already was supported\n - what this means is you don't need to have bttv installed, such as if using the standalone app, but want access to the bttv emotes in your chat\n- an option to filter URL links in text messages was added; if enabled, it replaces text urls with [Link}.",
"timestamp": 1712459101.771559,
"name": "steveseguin",
"msgid": "1226367099455410227",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- added a new digital effect `&effect=overlay` to vdo.ninja, which lets a user select an overlay image.\n - This applies to the outbound video stream itself; it's a sender-side digital canvas effect\n - effects cannot be stacked currently; so digital zoom or overlay, but not both, etc.\n\n- `&exclusivelayoutaudio` added as an option to vdo.ninja\n - If using a &layout, sources not included in the layout will be muted by default\n - by default, media not visible in a layout is still audible, which if fine for a single scene, which is the expected usecase with the mixer app\n - if using the recently used &viewslot however, this option is on by default for that view/scene link.\n - `&inclusivelayoutaudio` can be used with &viewslot to override this default\n\n** changes on alpha and github\n_",
"timestamp": 1712584100.894246,
"name": "steveseguin",
"msgid": "1226891383722213446",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "**social stream /w bttv update**\n- Updated the social stream standalone app to support the new BTTV option; not just the extension version supports it now",
"timestamp": 1712584169.219882,
"name": "steveseguin",
"msgid": "1226891670361079849",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- fixed an issue with &activespeaker=1 and &activespeaker=3, where more than one video appeared when more than one guest talked loud\n- added 'scene stats' to the director's only video preview, when using &showdirector\n** changes pushed to alpha (vdo.ninja/alpha)",
"timestamp": 1712706774.224615,
"name": "steveseguin",
"msgid": "1227405912537436311",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1227405912302424104/image.png?ex=662849d5&is=6615d4d5&hm=628c5554f2aee0ae92c52bcdaee27b167d0f35c72ce190cd9d3e4c70ff7d42ff&",
"desc": null
}
]
},
{
"content": "- made some small improvements to the \"create room\" page, style-wise\n- added a new option that remembers the last room you created as a director for quick-loading\n - remembers the last room name, password, and a few basic initial user-configured settings\n - also will load the last label/display name the director set for themself in &showdirector mode.\n - the saved settings are overwritten the next time you make a new room via the \"create room\" page\n - Users often ask about how to \"re-join\" a room they \"created\" previously; I hope this solves that issue.\n\n** on alpha for testing and feedback. (vdo.ninja/alpha)",
"timestamp": 1712731799.45589,
"name": "steveseguin",
"msgid": "1227510876093943838",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1227510875674644572/image.png?ex=6628ab96&is=66163696&hm=b5ab57b64977107586722890f185e5c21edaed9dac638a0d9d60c7d473a865b2&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1227510875892482159/image.png?ex=6628ab96&is=66163696&hm=b4e88ae0c0814faa267736cdd1aa7c39d312f10afc56aeca7ce2dccca305c5dc&",
"desc": null
}
]
},
{
"content": "- fixed a bug where using &showdirector + &slotsmodes was breaking things; the fix is on vdo.ninja/alpha/ \n - some added related polishing/fixes related to the new &viewslot feature also added",
"timestamp": 1712945891.204667,
"name": "steveseguin",
"msgid": "1228408841738129478",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- improved the performance of the BTTV effect in socialstream\n - has more optimized string matching, along with fewer false matches\n\n- when using `relayall` in socialstream, I strip most of the '@!.#' characters now, plus some other things, for sanitary reasons. \n - in effect, messages relayed between two social sites will be very plain text only, for the most part anyways.",
"timestamp": 1712946288.843182,
"name": "steveseguin",
"msgid": "1228410509775339693",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- 7TV support added to Social Stream; no 7TV extension required. \n - this won't update the twitch/youtube chat itself -- rather just the Social Stream chat that contains the yt/twitch chat\n - global emotes for 7tv will allow to not just yt/twitch, but all chat sources. Only channel-specific emotes will be yt/twitch specific.",
"timestamp": 1713153274.460716,
"name": "steveseguin",
"msgid": "1229278670263156736",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1229278670045057105/image.png?ex=662f19f9&is=661ca4f9&hm=7096f4bcf6e79aed9370284e05c599433107285f467093e2d2c8f59422e24c72&",
"desc": null
}
]
},
{
"content": "- there's an option to make links in chat messages clickable, which will open them in a new browser tab\n - it's compatible with hide links; hovering the link in this case will show the actual URL that it links out to.",
"timestamp": 1713163098.758902,
"name": "steveseguin",
"msgid": "1229319875831398431",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1229319875592327219/image.png?ex=662f405a&is=661ccb5a&hm=66b4aed63bb7e6ee9156142930474ab88ccca2f19e4a51303add69796722c3c6&",
"desc": null
}
]
},
{
"content": "- Made a dedicated landing page for Social Stream\n - the goal is to make it easier to get the download links, while avoiding the complexity of Github\n - there's also a new \"what is social stream\" youtube video; it's under a minute: https://www.youtube.com/watch?v=hZVTXqjFm9M",
"timestamp": 1713252552.12491,
"name": "steveseguin",
"msgid": "1229695069590913085",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1229695069892640800/image.png?ex=66309dc7&is=661e28c7&hm=eac43d56c71512139c1ac1f1449d630fbe4672e51fbb0acd0c00d688a7be541e&",
"desc": null
}
]
},
{
"content": "- Having a bit of fun, I put together a web interface for the vdo.ninja documentation that can be self-hosted.\n - https://vdo.ninja/docs \n - we're currently using Gitbooks for the documentation interface (docs.vdo.ninja), and while I don't intend to change that, it's nice having a backup option, perhaps if ever needing offline access,etc.\n - vdo.ninja's documentation files are markdown-based and are available at https://github.com/steveseguin/vdo.ninja/tree/gitbook",
"timestamp": 1713321560.534756,
"name": "steveseguin",
"msgid": "1229984511874306122",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1229984512432144446/image.png?ex=6631ab57&is=661f3657&hm=1ff838ddc90833e5bc10842cc8ed625db517e725261789666f2b2e1f8b2ffaa1&",
"desc": null
}
]
},
{
"content": "- added a \"rotate\" button to the director's control center\n - clicking it will incrementally rotate the video 90-degrees clockwise\n - should rotate everywhere\n - there's some css issues and a conflict with the mirror option at the moment, for the director's view at least, but nothing serious.\n\n** on alpha for testing at vdo.ninja/alpha/",
"timestamp": 1713343139.129294,
"name": "steveseguin",
"msgid": "1230075019770728458",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1230075019544231987/image.png?ex=6631ffa2&is=661f8aa2&hm=5c85b89e51e603087c7586e5d037b171216c0236ebfc2bb8c645dea2f668153b&",
"desc": null
}
]
},
{
"content": "- added a `&confetti` option to the Social Stream waitlist page\n - confetti drops when a winner is selected\n- also an align-center for the names is added",
"timestamp": 1713397145.322214,
"name": "steveseguin",
"msgid": "1230301538849656904",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1230301538656850010/image.png?ex=6632d298&is=66205d98&hm=b26ca9a824568c76a87d069df63eae190713a572c2dd5c1ef0212df3be95b626&",
"desc": null
}
]
},
{
"content": "- fixed a bug with `presets` breaking when using &label. **vdo.ninja**\n\n- added support for sounds and the waitlist / draw option. ** social stream**\n - I need to offer some default sounds, but not sure what's freely available, so just a beep for now\n - you can specify your own sounds though by linking to it as a URL media file",
"timestamp": 1713648348.334877,
"name": "steveseguin",
"msgid": "1231355160417009685",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1231355160224075816/image.png?ex=6636a7db&is=662432db&hm=3d44a6e87f24d21e2efb90c185c33e31ceb07476d34ec71f60ea33d0fea343e2&",
"desc": null
}
]
},
{
"content": "- updated vdo.ninja so that &border and &showlabel will be compatible with &push-only mode, even if not in a room or viewing others\n- added `&midiiframe` , which will publishing incoming MIDI data (sent via vdo.ninja) to be published to the iframe API. \n - it also can be used on its own, instead of &midiin or &midiremote, as you may not want to use it outside of the iframe\n- `&nochunkediframestats` added, which disables any chunked-video stats from being published to the iframe API. \n - I may eventually make this the default, but for now, you'll still get chunked stats by default via the iframe\n- I've tinkered with the &chunked mode, and have made the adaptive bitrate logic more aggressive, so if the sending bitrate can't keep up, it may drop the encoding bitrate heavily. \n\n** on vdo.ninja/alpha/ for testing",
"timestamp": 1713742597.346092,
"name": "steveseguin",
"msgid": "1231750470125752360",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- fixed an issue where links from Youtube were not working right always\n- added an option to shorten links, so they won't appear long",
"timestamp": 1713820465.008175,
"name": "steveseguin",
"msgid": "1232077069966643231",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1232077069773574165/image.png?ex=662824b0&is=6626d330&hm=933a477055acab00c1dc487c203ff9066aff8032fa4267690a0b393c47e358e9&",
"desc": null
}
]
},
{
"content": "- added an option to the dock.html page, so if you hold CTRL down while clicking the next-queued-message button, it will continue to auto-show the queued messages until pressed again\n - `&autoshowqueued` can be used to have it on by default\n - could be a bit buggy, so testing appreciated",
"timestamp": 1713946747.220331,
"name": "steveseguin",
"msgid": "1232606736087650387",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1232606735902969897/image.png?ex=662a11fa&is=6628c07a&hm=d1076dbfcd9849d99328bde9c423847c872eb67c6a1f6a9b5ad6f974d4924b0e&",
"desc": null
}
]
},
{
"content": "- added beamstream.gg support to socialstream.ninja",
"timestamp": 1714107410.502183,
"name": "steveseguin",
"msgid": "1233280607400890388",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- when using tts, *** asterisks won't be read out anymore.",
"timestamp": 1714107435.715799,
"name": "steveseguin",
"msgid": "1233280713088831629",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- fixed an issue with relayed messages not having all characters un-escaped correctly",
"timestamp": 1714295353.56985,
"name": "steveseguin",
"msgid": "1234068897838403594",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- updated the social stream standalone app\n - icon size fix for mac users\n - fixed an issue with the tiktok websocket integration in the app; button appears now\n - note: twitch and tiktok both have limited websocket integrations in the app; more coming as I can add them",
"timestamp": 1714363319.281414,
"name": "steveseguin",
"msgid": "1234353965546868776",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1234353965278429284/image.png?ex=66306d36&is=662f1bb6&hm=a3131ec55ad42984ffcf560066da7321a2c978b9af9158bd7b8388fc08f1067e&",
"desc": null
}
]
},
{
"content": "https://github.com/steveseguin/social_stream/releases/tag/0.1.25",
"timestamp": 1714363336.464899,
"name": "steveseguin",
"msgid": "1234354038808510585",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "** social stream** \n- If a specific message is already active in the featured chat overlay, triggering it again from another dock won't do anything now.\n -- the message needs to be removed before it can be added again.\n -- If you have two docks, the first dock to feature a message will be the one that shows in the featured chat overlay.",
"timestamp": 1714400400.312994,
"name": "steveseguin",
"msgid": "1234509495720349726",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- Animated Discord sticker support added to Social Stream,\n - videos, assuming they end in .webm or .mp4 extensions, will work now (only Discord support added at this time)\n - some other Discord fixes added for certain images also.",
"timestamp": 1714426078.652882,
"name": "steveseguin",
"msgid": "1234617198278873201",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- you can use the comms app in video-only mode, instead of the default audio-only mode, with the following flag\nhttps://comms.cam/?video\n\n- fixed an issue with vdo.ninja/mixer, where when changing layouts and assigning slots via the API sometimes caused the wrong layout to load",
"timestamp": 1714625025.206505,
"name": "steveseguin",
"msgid": "1235451640665083945",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- remote control of OBS (start/stop) is available via Social Stream chat now\n - you must specify the privileged users in the host/bot/privileged-user section, with the name of the users you want to provide access \n - care must be taken, as with some sites users can change their name, so this is note exactly \"safe\" to use in all cases\n - !start and !stop are the chat commands that the privileged users can use to remotely stop/start OBS\n - the social stream dock.html page must be added as as browser source to OBS, with full permissions enabled for that site for this to work",
"timestamp": 1714796652.591717,
"name": "steveseguin",
"msgid": "1236171496825815070",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1236171496460779621/image.png?ex=663709eb&is=6635b86b&hm=2d1f6b14b7d458c4bf2f86d967c0f6cdffde265178799bec44c7b52e99cdc646&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1236171496679018496/image.png?ex=663709eb&is=6635b86b&hm=ee57b615600b086a1e29c8289f10c12461c8466b8321dc92afb8d9a553208b5c&",
"desc": null
}
]
},
{
"content": "- added some examples on how to create custom overlays and custom labels for VDO.Ninja solo/view links\n - the use case is you have an overlay added via OBS to a VDO.Ninja video, but you still want the VDO.Ninja to auto show a label on top of your label. Well, here we create a browser source layer that is ONLY the label for a guest, and not video/audio, allow you to overlay it on top of everything else. \n - easy to customize / self-host / stylize\n- code examples / template here: https://vdo.ninja/examples/custom_labels.html & https://vdo.ninja/examples/custom_overlay.html",
"timestamp": 1714796901.307103,
"name": "steveseguin",
"msgid": "1236172541442261013",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "",
"timestamp": 1714797035.694838,
"name": "steveseguin",
"msgid": "1236173104175255643",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1236173103311097927/image.png?ex=66370b6a&is=6635b9ea&hm=33e227f9c7f497330691d4d9e4e49dc27524f75ab087b9827d87cc8089ba1622&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1236173103881519237/image.png?ex=66370b6a&is=6635b9ea&hm=91ffb4ed1bffd062eb11f10f6ae6365d849e1d435ef0535a01e518de8dffeb36&",
"desc": null
}
]
},
{
"content": "- Twitch subscribers are marked now as \"members\", with their sub-duration included as a sub-title in the featured chat page\n- fixed an issue with member-only filtering in the dock\n- fixed some CSS issues with member/donation cards, where things might double, and moved around the icon for the source-image placement\n- to avoid conflicts, the new featured chat page has moved from \"index.html\" to \"featured.html\"\n - index.html is still active, available to avoid any pre-existing custom css, however you'll want to migrate to the featured.html page for longer term support",
"timestamp": 1714878503.703517,
"name": "steveseguin",
"msgid": "1236514805695774761",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1236514805293252658/image.png?ex=663849a6&is=6636f826&hm=556c05cc963e1c70aad3fe53d47128fee9e42c456bc9c477ef812b5c5a4b3d9c&",
"desc": null
}
]
},
{
"content": "",
"timestamp": 1714878530.667718,
"name": "steveseguin",
"msgid": "1236514919378190346",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1236514919164153957/image.png?ex=663849c2&is=6636f842&hm=4d4dc326e45e481f6811be3c3c83714f89beb22a8e488873c24f93addb42abb5&",
"desc": null
}
]
},
{
"content": "- there's a new icon for \"events\" that don't include a user's name or user avatar",
"timestamp": 1714878633.199822,
"name": "steveseguin",
"msgid": "1236515349046890496",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1236515348694564924/image.png?ex=66384a28&is=6636f8a8&hm=ec6f2ea463a1924c4a037acfe8c96efacf6884f0068d539f03013241b3efba24&",
"desc": null
}
]
},
{
"content": "- If using custom !commands in Socialstream, they will now match if the message \"starts with\" the command, with a new option added to have it remain \"strict\" if needed",
"timestamp": 1715111439.022058,
"name": "steveseguin",
"msgid": "1237491807563288687",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1237491807365890118/image.png?ex=663bd78e&is=663a860e&hm=4862e68b427953060c25ed943539576ddd061785e623d11878c36895ca15cbac&",
"desc": null
}
]
},
{
"content": "- updated the standalone social stream app \n - fixes an issue with duplicate messages occurring with some sites\n - supports the new code folder structure\n - addresses a possible issue where reloading a window might have caused messages to stop",
"timestamp": 1715155888.765304,
"name": "steveseguin",
"msgid": "1237678243989950485",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- &hideshortmessages=5 added as a dock option in Social Stream\n - this lets you hide basic messages that contain fewer than 5-characters (an image counts as a character)",
"timestamp": 1715158774.176157,
"name": "steveseguin",
"msgid": "1237690345416949821",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1237690345203175466/image.png?ex=663c9075&is=663b3ef5&hm=20cc000718b2a05336ac5454ad2213de63c6eed7bce74f806fd4d907edf2d530&",
"desc": null
}
]
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment