Skip to content

Instantly share code, notes, and snippets.

@steveseguin
Last active December 9, 2025 21:19
Show Gist options
  • Select an option

  • Save steveseguin/274f00dc5667f7c9bfa782503942744b to your computer and use it in GitHub Desktop.

Select an option

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": "- the chat bot option now has a ` Do not screen out any of the bot's replies` option, which will make the bot more vocal by default. Otherwise, the bot might only respond if spoken directly to or in rare cases.",
"timestamp": 1756034768.993066,
"name": "steveseguin",
"msgid": "1325871248940601406",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1325871248781344850/image.png?ex=68abed93&is=68aa9c13&hm=3e6e50855d4305c5d4bba1b582d03407f4eb86baf366a2dd511ee9d77b39014a&",
"desc": null
}
]
},
{
"content": "- the option to rotate a video via the right-click menu has been added to vdo.ninja\n - works on pretty much any video; viewer or push side\n - I currently have it so if a guest rotates their own video, it rotates it for everyone in the room; let me know if it's an issue though\n** it's on alpha for testing (vdo.ninja/alpha/)",
"timestamp": 1756034769.865057,
"name": "steveseguin",
"msgid": "1330412609081442345",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1330412609052213268/image.png?ex=68abf84b&is=68aaa6cb&hm=ce80d84e7681f40efae810cba34c1633f0c8afd12d62ded675f80e32786456a3&",
"desc": null
}
]
},
{
"content": "- VDO.Ninja has been updated to version v28; it's now on production and Github\n - if having issues with it, the previous version can still be found at https://vdo.ninja/v27.4/",
"timestamp": 1756187410.024285,
"name": "steveseguin",
"msgid": "1409776915207950336",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- you can position the media overlay pop ups in the Event Flow editor now, including size, position, and if you want, randomly position.",
"timestamp": 1756306699.231659,
"name": "steveseguin",
"msgid": "1410277250481258616",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1410277250267615282/image.png?ex=68b06e8a&is=68af1d0a&hm=64549968f711984be47a31a7157f0c7fbe574ba1b7e72e97db60cc9f427b569c&",
"desc": null
}
]
},
{
"content": "- a few users outside north america and europe have had some issues connecting to VDO.Ninja and Social Stream Ninja today.\n - reset your `winsock` driver on Windows has worked for some:\n - Guide on that here: https://docs.vdo.ninja/guides/how-to-restart-your-winsock\n - For VDO.Ninja users, I also took a 3 year lease out on a server in hong kong recently, deploying a back up of VDO.Ninja to that:\n - https://alt.vdo.ninja/alpha/ (english language, with HK socket server) or https://china.vdo.ninja/alpha/ (chinese language, with HK socket server)\n - There's also of course already https://proxy.vdo.ninja, which still uses the main servers, but proxies connections via cloudflare.",
"timestamp": 1756576131.783744,
"name": "steveseguin",
"msgid": "1411407333744967700",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- There's a new test version (v0.3.52) of the social stream ninja standalone app\n - it has some fixes for Tiktok, Linkedin, general polish, and some easter egg features\n - you can grab the test version here: https://github.com/steveseguin/social_stream/releases/tag/0.0.0\n- The beta version of the main code has also been updated\n - there's an experimental sdk-mode that will reduce memory usage a bit when enabled in the menu\n - the site LFG has been added to social stream ninja \n - fixes for tiktok, particularly for gifts, pushed beta -- there might be some more fixes coming\n - fixes for some of the overlays, especially wrt to &password and &server support, but also tweaks to leaderboard",
"timestamp": 1756628638.593005,
"name": "steveseguin",
"msgid": "1411627563742269472",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- \u26a0\ufe0f just a temporary note, but for **the next hour** VDO.Ninja may be a bit slow on the initial connecting-side of things; won't impact video quality at all though.\n - there's https://backup.vdo.ninja if it's proving a problem.",
"timestamp": 1756655378.242959,
"name": "steveseguin",
"msgid": "1411739717552308225",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "Added more stats to the publishing window, including outgoing bitrate and packet loss info.",
"timestamp": 1756677738.312957,
"name": "steveseguin",
"msgid": "815113553215881246",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/815113548765462578/unknown.png?ex=68b5eae6&is=68b49966&hm=b39c31071dfac99627a1d038cd48a571245a9bcadb487121dd9d67d316846b8a&",
"desc": null
}
]
},
{
"content": "Added an option called `&discordwebhook` (aka, &dwh) to VDO.Ninja that lets you trigger a Discord channel notification whenever a viewer disconnects from a stream unexpectedly. \n - this is a viewer side option\n - it takes a url-encoded URL as a value -- the discord webhook URL specifically.\n - the purpose is to be notified when a stream ends unexpectedly, and it hasn't reconnected on its own automatically.\n\nPlease note:\n\n- if the sender refreshes or presses the hang-up button, then this isn't considered unexpected; the publisher stopped the stream\n- if the viewer doesn't have internet, they won't be able to trigger the webhook notification, and it will fail.\n- I want 60-seconds after the incoming connection, giving it a change to reconnect first on its own, before sending the webhook\n- label , stream ID, and some other details are included, that might be of some value\n\nhttps://vdo.ninja/alpha/?view=SSSSSSSSSS&discordwebhook=https%3A%2F%2Fdiscord.com%2Fapi%2Fwebhooks%2Fxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxx\n\nFor those unfamiliar, to get a Discord Webhook URL:\n\n1. Open Discord and go to the desired channel\n2. Click channel settings (gear icon next to channel name)\n3. Select \"Integrations\" from the left sidebar\n4. Click \"Create Webhook\"\n5. Name your webhook (optional)\n6. Click \"Copy Webhook URL\"\n\nThe webhook URL will look like: https://discord.com/api/webhooks/[numbers]/[string]\n\nTo use it as a URL parameter, you can URL encode it (https://www.urlencoder.org/) to make it URL safe.\n\nFor those wanting something shorter, you can try using just the `[numbers]/[string]` part as the value we are passing to VDO.Ninja. I'll add on the discord.com part if not provided. dno't include the first slash; just the second, and preferably url encoded.\n\neg: `&dwh=xxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxx`",
"timestamp": 1757176760.673938,
"name": "steveseguin",
"msgid": "1306682326016725105",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1306682326423441438/image.png?ex=68bd217f&is=68bbcfff&hm=d76740e79cf2b9c8cd6a33ec418a32553c6ac2b706f4c49672e60a3ba6f07e9f&",
"desc": null
}
]
},
{
"content": "There's another **TEST** version of the SSN standalone app\nhttps://github.com/steveseguin/social_stream/releases/tag/0.0.0\n\n**v0.3.55**\n- collapsible side menu\n- hiding windows will try to avoid throttling it\n- updated to Chromium v140\n- bot accounts supported with write-only modes\n- websocket sign in feedback improvements\n- youtube websocket sign in fixes\n\nYou currently will want to use it in conjunction with the beta toggle enabled.\n\nI'm needing to test it a bit more before I release it, but it attempts to address most the user reports and issues from this past week.\n\n** Update: some users have tested and there definitely remain some bugs to fix. Thank you for testing",
"timestamp": 1757238682.600602,
"name": "steveseguin",
"msgid": "1414186271579832390",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "I'll be testing out an updated server setup for VDO.Ninja for the next 8 hours or so; it's tweaked to handle recent Sunday mass super surges better. \n\nChanges that might be unexpected:\n- I've put in place a 200-viewer limit per stream\n- stream IDs are not global anymore, but scoped to their rooms\n- more aggressive messaging flow control, so large meshed rooms take a bit longer to fully connect\n\nIf these changes cause problems, there's a backup server at https://backup.vdo.ninja (US-West); and a new one in Asia (https://alt.vdo.ninja/alpha/). If things go well with the tests, I'll be leaving them in place, otherwise I'll try again next week.\n\n**^^ just an update on this change:\n- these specific server changes didn't help, however I did identify the cause of recent Sunday mass slow downs -- that's been fixed now. Capacity should be about 8x higher than before as a result. I'll likely undo some of the server changes I made, reducing restrictions on viewer limit for example, but I intend to keep stream IDs as locally scoped vs globally.",
"timestamp": 1757239803.53295,
"name": "steveseguin",
"msgid": "1414190975462543421",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "*note: *I've updated the Terms of Service and Privacy Policy for the hosted VDO.Ninja service:\nhttps://docs.vdo.ninja/help/privacy-and-security-details\n\n- The necessitating major change was to clarify that the service is not for children or illegal content/conduct.\n - I've outlined more clearly how to report abuses, with details on how to report and what I might do in those cases.\n- The ToS will be more prominent on certain pages of VDO.Ninja now also; those changes are now applied to vdo.ninja/alpha/ for testing \n- Security and privacy wise, still the same, but parts of the privacy policy have been cleaned up and expanded on.",
"timestamp": 1757403367.014024,
"name": "steveseguin",
"msgid": "1414877009846206486",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- some of my relay/broadcast server leases expired this week, so I got some new servers to replace them and upgraded some others; moved some capacity around, updated the server software where needed, etc. \n - overall, there's more capacity in north america and europe now (lots of excess headroom there), with Poland specifically getting a doubling of capacity to compensate for the heavy traffic there lately.\n - these servers are used by both VDO.Ninja and Social Stream Ninja, when needed, \n - if anyone is finding > 0.5% packet loss, isolated to a local specific server / region (https://vdo.ninja/speedtest), let me know.",
"timestamp": 1757563076.664935,
"name": "steveseguin",
"msgid": "1415546876911943680",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/webp",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1415546877289566288/image.png?ex=68c39a43&is=68c248c3&hm=96f2254baec6438144c2e24e39e5337a2096dfd307af7575e1efba781d2b824b&",
"desc": null
},
{
"mime": "image/webp",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1415546878430285844/image.png?ex=68c39a43&is=68c248c3&hm=262d4f368efa659b99c0132f7cf6b7a6fd2fb2732a3c8da30d0af9f112962b08&",
"desc": null
}
]
},
{
"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": 1757806674.930934,
"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=68c6fc62&is=68c5aae2&hm=542558b73e753d2c275ea2999534be31ec51bc2df6df4ccc0e7737cf9baa5dcf&",
"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": 1757806784.286463,
"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=68c74a6e&is=68c5f8ee&hm=4f20abbbddbb426d1b48200d4ff0b69e8dd545ee3476e3d4cfa5d6f7b33046fb&",
"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": 1757806784.907448,
"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=68c70b9a&is=68c5ba1a&hm=7aa2d9f68d550ec7f0279fbcc995fd915c4977a45a2521e4d2bec6fe6ec9ed7d&",
"desc": null
}
]
},
{
"content": "",
"timestamp": 1757806789.954125,
"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=68c6f43d&is=68c5a2bd&hm=471f0c2033a457672128936452b698e18d13c3b5fa0de77caa09b07498a24446&",
"desc": null
}
]
},
{
"content": "",
"timestamp": 1757806791.037671,
"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=68c6adda&is=68c55c5a&hm=ad0019545b6870a9fca15e0236abd97de24522434bf6b0d5a539fbbd3535e46a&",
"desc": null
}
]
},
{
"content": "",
"timestamp": 1757806791.993069,
"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=68c6a9e4&is=68c55864&hm=3f63fae05915d2e68d8721a806b3e58b31f6e757a21e5186acece301020e4dd8&",
"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": 1757806792.969284,
"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=68c70e56&is=68c5bcd6&hm=038d052179c3de669ad82d5b95eed25dac7bf6129d1f39f87d65270a36538f9a&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1227510875892482159/image.png?ex=68c70e56&is=68c5bcd6&hm=034b3252966915f2d3d74ec31d22c3345500ea4640378e09ae54c0b1144ab2f6&",
"desc": null
}
]
},
{
"content": "- added an option to beep (and custom beep) on the index/featured chat page of Social Stream",
"timestamp": 1757806794.047998,
"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=68c74690&is=68c5f510&hm=736de4ba509098ef2e26cfab3dca78ef60b6200282bc3d61566fb5a13da980dc&",
"desc": null
}
]
},
{
"content": "",
"timestamp": 1757806795.783029,
"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=68c6a9d0&is=68c55850&hm=41e2e86ba0508e6aa40d645f579dab9fb095369b508eeda8b9bbb61d96f5fa24&",
"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": 1757806797.032707,
"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=68c6d397&is=68c58217&hm=438476c588502597425cc85612a8b0ef3bd4ca0c39abaa1b64448217d73e119f&",
"desc": null
}
]
},
{
"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": 1757806797.954367,
"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=68c6e539&is=68c593b9&hm=fcbde75d50d1bff854c90e2690c014c5e7bb0c68a7129fa42cffed1dbb5ad78a&",
"desc": null
}
]
},
{
"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": 1757806799.051955,
"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=68c7115a&is=68c5bfda&hm=4b071f03f616dc7b74885d0e5610f98a32278178d3423d51e13f42fb72ff2cca&",
"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": 1757806800.815858,
"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=68c6ffe0&is=68c5ae60&hm=54c83499ccc04cd9a12ab08f117a0037e6dcf5d8d02eaae822bbd60902d2dd1d&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1217167291741900800/image.png?ex=68c6ffe0&is=68c5ae60&hm=0d6003aeb3b7fb847e9bbef798c6bce1720b88f81a2cbf07d91a19ba4e94564f&",
"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": 1757806802.038334,
"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=68c6c31e&is=68c5719e&hm=de6bfcba1cbc9f6319bf47627ea433d02c5989e8f8d084296b3ba60274e568e0&",
"desc": null
}
]
},
{
"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": 1757806803.067141,
"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=68c70f82&is=68c5be02&hm=382ff399b7346a2829391554e481c1dc8fcaead81484d263320a930fd9abadb3&",
"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": 1757806804.936096,
"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=68c71787&is=68c5c607&hm=4f27ad1f35dfd9dfdec4e06d7fd746ead1ae162fb84107e3c3ea3b524dee62a2&",
"desc": null
}
]
},
{
"content": "- I've added `&flipoutput` and `&mirroroutput` to VDO.Ninja\n - flips or mirrors your local camera, and the remote viewers also see the video as flipped/mirrored.\n - this is different than &mirror or &flip, which just does the change locally.\n ** for testing on alpha at https://vdo.ninja/alpha/",
"timestamp": 1758328054.435096,
"name": "steveseguin",
"msgid": "1418755428216737962",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "Some advanced audio-related vdo.ninja updates:\n\n- I show the audio codec now used in the stats, along with whether audio forward error correction (FEC) is on or not (on by default)\n- `&nofec` on the viewer side can disable FEC.\n- `&audiocodec` on the viewer side can let you specify the audio codec; opus (default), pcmu, pcma, isac, g722, and red. \n- `&audiocodec=red` is pretty much sending two opus streams, with one as a backup in case of packet loss; support in Chromium 97 and up, but the only way I can so far tell that it is working is to check if the audio bitrate has doubled.\n- `&dtx` (aka, &usedtx), is also now functional (viewer side). Using this flag will turn off the audio encoder automatically when no little to no sound is detected. The vdo.ninja default uses a dynamic audio bitrate mode (&vbr), but using &dtx takes things to the next level. It might be useful as a very mild noise-gate I suppose.?\n- also fixed a couple minor bugs, such as no play button appearing when using `&view=xx&novideo`\n\n** changes on alpha at https://vdo.ninja/alpha/",
"timestamp": 1758571828.484628,
"name": "steveseguin",
"msgid": "1043476702996725850",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1043476703089008660/image.png?ex=68d279e8&is=68d12868&hm=937fb59dea44ad80f806066178754ecbcada93e7694aa7078fa0276b19901b1e&",
"desc": null
}
]
},
{
"content": "- Viewer counts for Tiktok and Facebook added\n - this isn't yet added to the websocket version of tiktok; just the web page version",
"timestamp": 1759171969.095631,
"name": "steveseguin",
"msgid": "1311457929756414002",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1311457929492303942/image.png?ex=68dbb020&is=68da5ea0&hm=d5e52f0dc3a76bb3af71f19c49461189ae01217183df5fe5fffed3a03e5a0338&",
"desc": null
}
]
},
{
"content": "- for sites like restream, which offer third party relayed chat, you can now filter out just the relayed chat if you prefer native capture instead.\n - no duplicate messages",
"timestamp": 1759314658.360238,
"name": "steveseguin",
"msgid": "1295641340188692571",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1295641339974647842/image.png?ex=68de2207&is=68dcd087&hm=4d536977ea427c6c32bf4d6c1ffd17cb9a629ec63a5d11bd16d39e8776d332c8&",
"desc": null
}
]
},
{
"content": "- You can use the API to control the mixer layout now, via the mixer. `https://api.vdo.ninja/APIKEY/layout/2`\n-- there were some bugs with this when using it via the mixer before, and there wasn't much documentation on the companion.vdo.ninja site. all fixed.\n** works on vdo.ninja/alpha/mixer?api=APIKEY",
"timestamp": 1759632433.33415,
"name": "steveseguin",
"msgid": "1082107014408306740",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1082107014374756452/image.png?ex=68e31630&is=68e1c4b0&hm=89192600df2714fe35afb8ef7c820a6b076a8f1fa9143116520f14380a62fba6&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1082107014630617128/image.png?ex=68e31630&is=68e1c4b0&hm=6c5660a902d52293623cd7d249b34ead79562f5b2e27425a41061b251b5eec77&",
"desc": null
}
]
},
{
"content": "note: If you opened the Social Stream Ninja app recently, and things aren't working, just restart the app. Temporary issue that's now fixed, but not noting it might linger for some.",
"timestamp": 1759958760.852641,
"name": "steveseguin",
"msgid": "1425595108669001749",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- The other week I made this **web-only version of Social Stream Ninja**, which I'm calling the \"lite\" version\n - it only works with Youtube, Twitch, and Kick, however there might be some lingering issues with Youtube permissions I'm sorting out still\n - it is compatible with the dock.html and other custom overlay pages, but it is very restricted in features and functions overall - very basic.\n - it can work on mobile without a computer also; you can full screen the chat from the page and get basic consolidated chat that way\n** It's available for testing and I am seeking feedback: https://socialstream.ninja/lite\n\nWhy did I add this? Some users requested a simple web-only version, for mobile use or some users get easily overwhelmed with options. I'll improve based on feedback.\n\n- I've pushed many small updates over the last few weeks, focusing mainly on fixing bugs and adding polish though. I've been adding some new follower/subscriber events this week as well, expanding support for those events across more sources. The beta version of SSN, via the websocket-mode for Tiktok, Youtube, Twitch, and Kick, have been my focus and there's a few new events added there now. I'll update in more detail once I confirm what actually works after completing some lengthly testing.",
"timestamp": 1760645877.34658,
"name": "steveseguin",
"msgid": "1428477082685673521",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1428477083092390048/image.png?ex=68f2a474&is=68f152f4&hm=c96c3798f9b07f3ed023e13176288a390695fd50e8a917a7dbafb52f4037ec8c&",
"desc": null
}
]
},
{
"content": "- regarding **VDO.Ninja updates**, when using &meshcast in a group room, it will now have the screen shares also be sent via meshcast (whip) and not just the primary camera feed\n - this further reduces the CPU and bandwidth on guests with weak connections when screensharing in a group room, however it does mean screen shares take a few moments longer to load when used in this fashion.\n - several new URL options added to control screen share playback; audio-only, video-only, exclude screenshare, and only-show-screenshares.\n** changes are on alpha for testing at vdo.ninja/alpha/",
"timestamp": 1760646024.576185,
"name": "steveseguin",
"msgid": "1428477701609492501",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- An option to change the font-color, outline, and weight for the dock.html main overaly were added to the menu as options \n - option is on the beta version of the code (toggle it on in the app or download beta.socialstream.ninja if using the extension)",
"timestamp": 1760735125.064799,
"name": "steveseguin",
"msgid": "1428851415857762484",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/webp",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1428851415203319808/image.png?ex=68f40114&is=68f2af94&hm=5184c86171d0759e779d9af8006fd1694797849044d44547482d4bcf67001079&",
"desc": null
}
]
},
{
"content": "",
"timestamp": 1760735732.650842,
"name": "steveseguin",
"msgid": "1428853964883099698",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/webp",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1428853964614406175/image.png?ex=68f40373&is=68f2b1f3&hm=e97fec03b9fc9678d0210ba98263cc0d2e48a2ad1791e84b6d840dd870c8debf&",
"desc": null
}
]
},
{
"content": "- I pushed an updated version of the SSN standalone app to production. \n - some users were having Tiktok websocket issues in the last version, which I seem to have fixed in this version\n - the chromium engine has been updated to the newest stable release I have access to,\n - the app has a different fingerprint than the last version, so signing in to some sites may work if the past version failed.\nhttps://github.com/steveseguin/social_stream/releases/tag/0.3.58",
"timestamp": 1760745572.473066,
"name": "steveseguin",
"msgid": "1428895235521384541",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- now, if you long-press the speaker icon in VDO.Ninja, a volume slider will appear that will let you adjust the volume of incoming audio (1 to 100%).\n** on alpha for testing at vdo.ninja/alpha/",
"timestamp": 1761017859.888905,
"name": "steveseguin",
"msgid": "1430037291664932884",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1430037291220340756/image.png?ex=68f85183&is=68f70003&hm=e2c9d59a8621d5dd5757a4e3e749ed08420a7b9f2627fbd3a51f401afcc9b00d&",
"desc": null
}
]
},
{
"content": "- added a couple new midi hotkey options; deafen and blind for the director. I am welcoming more suggestions\n- added volume control to midi for director per guest; value 27 to 127 controls volume from 0 to 100%. I can change this if 200% is desired instead? \n- midi control change channel is set to 1 now; other channels are ignored.\n\nImage demos how to mute guest #1 via a toggle gain switch with a streamdeck.",
"timestamp": 1761148887.038152,
"name": "steveseguin",
"msgid": "832788588981780491",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/832788586071326750/unknown.png?ex=68fa2c8f&is=68f8db0f&hm=3d95b8ef9b89f03f5d962dbafbdfcb925d6919c837adc1886caa0c34b13c6463&",
"desc": null
}
]
},
{
"content": "- Added a 'hype meter' to Social Stream to offer insight into total actively engaged viewers; an alternative to 'viewer counts'.\n-- keeps track of unique names seen per chat source in the last 5 minutes.\n-- the more engaged your viewers are with the chat, the higher the score. Might encourage more chatting.\n-- this is a new dedicated overlay page\n-- basic styling options included, such as align left/right, disabling outlining, scale, etc",
"timestamp": 1761159335.85234,
"name": "steveseguin",
"msgid": "1140357066733662399",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1140357066180006060/image.png?ex=68fa7947&is=68f927c7&hm=e578608cf1dd015bd3f92e7c8e6dcad50c9660389de3fa72a9e7f6e07bd43e64&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1140357066532343848/image.png?ex=68fa7947&is=68f927c7&hm=3d058ef12cd2a110fe9d56f0292f8996802fb25e9403be5fba222f8104d2d769&",
"desc": null
}
]
},
{
"content": "- I've updated the **Video Capture browser extension** (https://github.com/steveseguin/video_capture_extension) \n - it is less likely to disconnect a video that's being published just because someone else joined/left the room \n - it will near immediately hide video streams when they become stopped, rather than showing a frozen frame for more than a second\n - ** The newest version is available for TESTING , via manual download, at https://extension.vdo.ninja or on github.\n\n- I've updated the **VDO.Ninja SDK**\n - It supports bitrate and resolution controls now, including demos\n - it supports blanking videos automatically that are stopped or muted, rather than showing frozen frames\n - fixed a very rare bug\n - you can now use it with a self-hosted version of the vdo.ninja server\n - https://github.com/steveseguin/ninjasdk",
"timestamp": 1761460508.235319,
"name": "steveseguin",
"msgid": "1431893892696899696",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- I've published a new test version of the **Social Stream Ninja standalone application** \n - I made the mistake this month of trying to use a newer Tiktok webscoket API to access shopping events, etc, but it's horrific to use, so I've now reverted back in this version to the basic earlier version. Version 0.3.48 to 0.3.59 are using the newer API, and now the new v0.3.60 has reverted back to earlier code of mine, that I think was more reliable\n - I've added an experimental option to let you try to sign in to the Tiktok websocket API, so you can try to see if that lets you respond to messages or not\n - You can now also sign into Youtube after adding a username, without starting an actual stream\n** This new v0.3.60 version is available for TESTING at https://github.com/steveseguin/social_stream/releases/tag/0.0.0 ; please report how it goes for you.",
"timestamp": 1761460816.849059,
"name": "steveseguin",
"msgid": "1431895188682571796",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- new test version of SSN Standalone: v0.3.61.\n - two different file -> reset options added (full reset & partial reset)\n - so, now I support Tiktok via alegacy websockets mode, a new websockets mode, and standard modes\n - if one mode fails to work for you, you have more options now. \n - I hide error/warnings in the console log, to avoice confusign uses\nhttps://github.com/steveseguin/social_stream/releases/tag/0.0.0",
"timestamp": 1761631196.110799,
"name": "steveseguin",
"msgid": "1432609810259644498",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- The Electron Capture app has a new test version available for Windows.\n - adds 'isolated window application' audio sharing, when screen sharing via vdo.ninja/alpha/\n - application audio capture requires Windows OS, Node-mode (elevated privs) enabled, and have administrator mode on.\n - I also increased the maximum and minimum allowed video encoder quality (lossless max if bitrate set very high? >20mbps?)\n - h265 video encoder support enabled; eg `&codec=h265` on playback\n - more command line parameters (see audio application branch's readme for details)\n - chromium engine updated to more secure stable version that still supports transparencies\n - experimental nvenc support enabled; will auto enable if available on Windows.\nhttps://github.com/steveseguin/electroncapture/releases",
"timestamp": 1761648296.20203,
"name": "steveseguin",
"msgid": "1432681533424009226",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- the VDO.Ninja SDK has some new demos,\n - [recording WAV audio to a server via node.js](https://github.com/steveseguin/ninjasdk/blob/main/demos/node-room-audio-recorder.js) (headless, with no browser/python, no CPU processing),\n - [recording audio and video to a server via node.js](https://github.com/steveseguin/ninjasdk/blob/main/demos/node-room-media-recorder.js)(headless, no browser, but uses ffmpeg)\n - [play audio from a server to VDO.Ninja](https://github.com/steveseguin/ninjasdk/blob/main/demos/node-audio-sine.js)\n\nTo me it's a bit neat, as its yet another way to record audio and video with VDO.Ninja, without complex servers. You can have your own live-to-cloud podcast system setup with VDO.Ninja in minutes at this point.\n\nSpeaking of Podcasts, I threw together a podcast studio, built on VDO.Ninja, for fun. You can check it out here. Feedback welcomed:\nhttps://vdo.ninja/alpha/?podcast",
"timestamp": 1761720767.903813,
"name": "steveseguin",
"msgid": "1432985500402188298",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/webp",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1432985500611907614/image.png?ex=69030b3e&is=6901b9be&hm=08f5fbefd2ed5670a79c92b87f4dba2a678ff9bbb8bd9a2e1b7eed498134e213&",
"desc": null
}
]
},
{
"content": "- you can adjust the padding between messages easier now; the default is 3px. \n- bots can read out tts now; before they were filtered out",
"timestamp": 1762019998.700759,
"name": "steveseguin",
"msgid": "1311757801672020039",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1311757801584070726/image.png?ex=6906f767&is=6905a5e7&hm=716e6b9e6e3553250d3d1f269d3b56130492eefe52aed462b3e3302b3c2f1648&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1311757801856438302/image.png?ex=6906f767&is=6905a5e7&hm=f9a344e96abdd4e33e230aa9e703205b560d7639e393a9e98e4a221e0c861dba&",
"desc": null
}
]
},
{
"content": "- added quite a few new options to the TTS (dock page), specifically for Elevenlabs, but a few other options added",
"timestamp": 1762019999.295862,
"name": "steveseguin",
"msgid": "1316174963836846201",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1316174963639586836/image.png?ex=69073734&is=6905e5b4&hm=cce65e45eb01f68e6cc7b26f3324ad5cc10877c1e63024d9f3939819a0dbaf7b&",
"desc": null
}
]
},
{
"content": "- speechify.ai has been added to Social Stream Ninja, so this is yet another TTS premium service you can use:\n - via https://www.speechify.ai/, with enough free tokens available to play with\n- I also made it easier to customize each of the existing premium (third party) TTS options.",
"timestamp": 1762020000.182796,
"name": "steveseguin",
"msgid": "1286123794452451338",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1286123794510909490/image.png?ex=6907505f&is=6905fedf&hm=e6118c350d63837545b40a927d8dd04d5f050e66a7baf9a1fce36d2e665ef5fe&",
"desc": null
}
]
},
{
"content": "- I re-wrote the Social Stream Ninja API documentation; plus documented some hidden features like the ability to toggle the TTS on and off remotely.\nhttps://socialstream.ninja/api\n- I also re-wrote the sample API, streamlined and prettier. Also lets you create more complex custom messages for testing.\nhttps://socialstream.ninja/sampleapi",
"timestamp": 1762020001.222698,
"name": "steveseguin",
"msgid": "1283906041414815876",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1283906041733713920/image.png?ex=690727ee&is=6905d66e&hm=d295020895d6fa93dc7a28cbbcb31c7a079185c378eb156c8b10481f4a109cf9&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1283906042102808577/image.png?ex=690727ee&is=6905d66e&hm=fb1f75320dacc64ddaaf875ce5bb5cf7bbfc93f95f9c3c4ec6a9277e4a549372&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1283906042429833326/image.png?ex=690727ee&is=6905d66e&hm=4461e5bcf843fa0cc55304f2fe5c7dacf74883e33dd4596c04053266411971e2&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1283906042690015384/image.png?ex=690727ee&is=6905d66e&hm=7d0c521c88fd6217dd54e6849405856df6c544ef095d6a580c586075dae1c93e&",
"desc": null
}
]
},
{
"content": "- added more TTS options to control who it triggers on\n- added a better way to add/remove users to different user types\n- added more user types; \"vip\" being the main new user type\n - you can VIP a user via the context menu in the dock\n - you can give have VIP users get a special badge only viewable in SSN\n - you can have VIP users get TTS only, etc.\n- if using the beta extension, you'll get the beta overlay links provided now \n - you'll get a notification that you're using a beta version. \nhttps://beta.socialstream.ninja/",
"timestamp": 1762020004.082649,
"name": "steveseguin",
"msgid": "1321383895433875496",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1321383895496658978/image.png?ex=69070ca6&is=6905bb26&hm=820ca2253c6a665d684bf3b670af230bd61b7aacd1ff59d633dbfe31cb9571fb&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1321383895824076810/image.png?ex=69070ca6&is=6905bb26&hm=eb90b134df697613186c1f152a158add5f9172d35d1e2e814612d397cf59a02a&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1321383896033661000/image.png?ex=69070ca6&is=6905bb26&hm=b94080956722c2a0f7a7d0860373beb9e01d093ac5407a97b19a8c9ff20a099d&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1321383896247439431/image.png?ex=69070ca6&is=6905bb26&hm=5c02b7a8d81c94a802bd752cee6b281ef70f7fa7d59ae4b55da226571d97a708&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1321383896545497118/image.png?ex=69070ca7&is=6905bb27&hm=20293a54ad32db43627e05de1f89c15e37a0aa7e4970b59bf4978e6bb826f6fd&",
"desc": null
}
]
},
{
"content": "Before there was Social Stream Ninja, I had this basic featured-chat extension on the Web store. It was previously using the depreciated v2 chrome extension standard and Google had disabled it as a result. I've updated it to version 3 now though, so it's available to use again if you were still preferring it's simplicity.\nhttps://chromewebstore.google.com/detail/chat-overlay-for-youtube/bahhfoidnfogingiolidoidmlkogjlhp",
"timestamp": 1762462381.20103,
"name": "steveseguin",
"msgid": "1436096051072467114",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1436096051231588425/image.png?ex=690e5c2b&is=690d0aab&hm=e964f4c63163231f9738d6de1019ffe22befd32169772d30aca1158c04fc566b&",
"desc": null
}
]
},
{
"content": "I pushed the alpha version of VDO.Ninja into production just now, so https://vdo.ninja is now running the newest version of VDO.Ninja (v28.5)\n\nSome changes in this minor-release version:\n- Screen-share delivery can be hard-disabled with ?noscreenshare \n- Speaker mute control now exposes a vertical volume slider/value popover on both index and room surfaces\n- Director slots pick from a deterministic colour palette; more slots as well (&maxslots=20)\n- Chunked mode gained URL-gated presets plus parity FEC, resend caches, buffer floor/ceil clamps, and frame-drop telemetry for lossy networks\n- Podcast Studio now has its own launcher and shell with SpectrogramRenderer, level bus subscriptions, and roster/timeline scaffolding that bridges the legacy session. [Podcast Studio is still a WIP}\n - Studio disk capture workflow enforces File System Access permissions, exposes toggle/folder status, and is backed by a published ISO-recording roadmap. \n - Cloud sync + Dropbox for Podcast Studio\n- Queue/approval UX gained a louder knock tone, pulsing queue badge/button states, and snapshot sync so co-directors inherit pending knocks immediately. \n- Wake-lock handling now arms on first pointer/key press, tracks release events, and falls back to a micro keep-alive video on mobile so sessions stay awake.\n- Publishers can set `&prefervideocodec=` to bias SDP codec order for every new peer while leaving viewer overrides intact\n- `&pip` and `&pipme` fixes for recent Chrome updates",
"timestamp": 1763273102.735955,
"name": "steveseguin",
"msgid": "1439496465830514728",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- Streamlabs' events support added to Social Stream Ninja\n - get the required alert-box URL here: https://streamlabs.com/dashboard#/alertbox/twitch/follows\n - the alert-box URL will looks like this; just keep it open like a normal chat pop up: https://streamlabs.com/alert-box/v3/XXXXXXXXXXXXXXXXXXXXXXXX",
"timestamp": 1763288048.733007,
"name": "steveseguin",
"msgid": "1439559150534398104",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1439559150764818432/image.png?ex=691af56f&is=6919a3ef&hm=0c8323d92301b54cc4267b8e41cb2e994d95280e0006aeeb64eef1d83d4e4ae6&",
"desc": null
}
]
},
{
"content": "- noting: cloudflare is having some issues this morning.\n - https://steveseguin.github.io/vdo.ninja/ and https://backup.vdo.ninja/ are available to try if Cloudflare is down in your area.",
"timestamp": 1763465966.833479,
"name": "steveseguin",
"msgid": "1440305396538409051",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "",
"timestamp": 1763467397.864727,
"name": "steveseguin",
"msgid": "1440311398469996544",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1440311398084116570/image.png?ex=691db204&is=691c6084&hm=ddd483398e61fdee23cb46ac93909a34731389fe5de7a8d67aa176c818b32e2c&",
"desc": null
}
]
},
{
"content": "https://www.cloudflarestatus.com/\nseems to be back up on all sites now, but we'll see.",
"timestamp": 1763476760.733535,
"name": "steveseguin",
"msgid": "1440350669352730625",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- Added a Spotify widget overlay within Social Stream Ninja\n - Spotify section moved to the bottom of the menu, into its own section now.\n - this expands on the existing spotify features, with customization options avialable\n** on the beta version of SSN for testing",
"timestamp": 1763633270.694734,
"name": "steveseguin",
"msgid": "1441007118583857205",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1441007117887868949/image.png?ex=692039f5&is=691ee875&hm=fbbcb28f08d13b08e446fa057383bceb0c0b3a6f56ea60256b9895efe9cfd5dc&",
"desc": null
},
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1441007118302974013/image.png?ex=692039f5&is=691ee875&hm=514da7b8ba1e4647876cca5f1890f8c9e03e5862833d3c584a161d53ba8890b3&",
"desc": null
}
]
},
{
"content": "New TTS option added - Google Gemini TTS \n(available via social stream ninja beta for testing)",
"timestamp": 1763982513.644496,
"name": "steveseguin",
"msgid": "1442471949321371760",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1442471949098815488/image.png?ex=69258e30&is=69243cb0&hm=477951bc118c5924bf5535b7957fb481272ff3b767a711d6a38d7db7d1140111&",
"desc": null
}
]
},
{
"content": "- An experimental overlay option added, which lets users enter their country of origin into and it will make them on a map. Welcoming feedback/ideas.\n - it's designed to be full-window, partially transparent, etc. \n - One-location per user; refresh the page to reset the results.\n - On beta at: https://socialstream.ninja/beta/map.html?session=XXXXXXXXX --- (update: there's a toggle in the menu on beta to enable the map)",
"timestamp": 1763982719.658941,
"name": "steveseguin",
"msgid": "1442472814048313385",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1442472814274678886/image.png?ex=6926e07e&is=69258efe&hm=75ef99aa2436a10019c231604a205697bbc05d1ce9fd4404fb257a25c48703b6&",
"desc": null
}
]
},
{
"content": "- Made a page that lets you convert old dock.html URLs into importable settings files\n - helps you recover lost settings or switch between different settings based on the dock.html link, which you probably still have in OBS somewhere\n - it won't recover every setting, especially global settings, but it should get you most the way, and perhaps to a functional state.\n\nhttp://socialstream.ninja/beta/recover.html",
"timestamp": 1764006838.122461,
"name": "steveseguin",
"msgid": "1442573974365016157",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1442573974524661911/image.png?ex=6925ed35&is=69249bb5&hm=aa4f81b260396eab745f7ab9440fa4674882b65f9321281acecaff0103801a94&",
"desc": null
}
]
},
{
"content": "- there's more font-styling options for the dock.html (main overlay), including a glow-effect and a typewriter effect. \n** on beta",
"timestamp": 1764247857.933792,
"name": "steveseguin",
"msgid": "1443584884311461978",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1443584883812208650/image.png?ex=69299ab0&is=69284930&hm=1a466f1542dd11a9034907c224644ff89fa877374610331293035b1922e06a3d&",
"desc": null
}
]
},
{
"content": "- An OBS-dockable page for directors, allowing them to send director-messages to guests in the room. \n - also includes as basic bit of info about who is in the room, their state, etc.\nto use: https://vdo.ninja/director-messenger?api=YOURAPIKEY + https://vdo.ninja/?director=ROOM&api=YOURAPIKEY",
"timestamp": 1764259209.838725,
"name": "steveseguin",
"msgid": "1443632497534566566",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1443632497618587749/image.png?ex=6929c708&is=69287588&hm=f7b030d3744e06deb8bcb33549eafe7aa4c435522feb482d0a337e0f92242913&",
"desc": null
}
]
},
{
"content": "note: I've recently changed SSL certificates for VDO.Ninja after like 5 years; the old ones are expired.\n- The replacement is using LetsEncrypt; seems like the best option.\n- If there are sudden problems connecting, where you get an error about the server being slow to respond, see if https://wss.vdo.ninja, and if there are security warnings, you might be facing a conflict. Let me know what the error is in that case, and I'll sort you out. There shouldn't be issues, but you never know.",
"timestamp": 1764806472.520565,
"name": "steveseguin",
"msgid": "1445927883796385903",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "VDO.Ninja is up-to-date on Github now; fully in sync across Alpha, Production, and [Github](https://github.com/steveseguin/vdo.ninja). If you want to fork and modify the recently added podcast studio, that's now possible.\n\nThis update made on production is mainly addressing some codirector limitation/bugs, but let me know if you encounter any still. I'll be working on developing new core features once I'm sure things are stable. There is no shortage of things to add to and improve on, so I'll keep at it. Thank you for the feedback, support, and requests.\n\nThe documentation has also been updated to reflect new parameter options. Some recent features added to VDO.Ninja:\n\n- Podcast Studio - New dedicated podcast recording interface\n - Multitrack Recording - Record individual audio tracks separately\n - Dropbox Integration - Cloud storage uploads for recordings\n - Audio Metering - Real-time audio level visualization\n- WebXR/AR Examples- Augmented reality streaming support (experimental)\n- Director Messenger - New director communication tool (director-messenger.html)\n\n New URL parameters added:\n\n- &altlabel= - Custom display name prompt text\n- &cftoken= / &cft= - Cloudflare WHIP output token\n- &whippushtoken= / &whipouttoken= - WHIP push authentication\n- &alignright= / &rightalign= - Right-align video layout\n- &dropbox= - Dropbox integration token\n- &slotmode= / &slotsmode= - Slot layout mode\n- &maxslots= - Maximum available slots\n- &webxrbridge= / &externalsensors= - WebXR/AR sensor bridging\n- &prefervideocodec= - Preferred video codec selection\n- &ipv6= / &preferipv4= / &ipv4= - IP version preference\n- &holdwithvideo= / &queue4= - Hold queue with video enabled (codirectors)",
"timestamp": 1764950636.136877,
"name": "steveseguin",
"msgid": "1446532550674743447",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "- I've updated the Podcast studio on alpha\n - see: https://vdo.ninja/alpha/?podcast\n - video preview thumbnails added\n - an option to record the entire group scene to disk is added (along with a way to go live to Twitch directly)\n - improved the layout and loading styles",
"timestamp": 1765155175.750138,
"name": "steveseguin",
"msgid": "1447390448925806592",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": [
{
"mime": "image/png",
"url": "https://cdn.discordapp.com/attachments/701232125831151697/1447390449282191600/image.png?ex=693772e6&is=69362166&hm=a5ae012988e79474bc4031cc359289296ee1d0943f0069cbafaabe3c30ab5e35&",
"desc": null
}
]
},
{
"content": "- For VDO.Ninja in general, on alpha, I've increased the default screen share resolution in group rooms to 1080p\n - that's up from 720p; I've had user feedback around this, so thank you.\n - &v and &V now do the smae thing.\n\n- I've also added quality-of-service stats-collection to help me identify bad turn / meshcast servers, providing packet loss details and stream stats back to the server\n - the hope is, if I can identify a turn server is bad, for example, I can remove it from the pool or servers, or remove them from region pools.\n - data: packet loss, turn/meschast use vs p2p, rtt, country, errors, browser type.\n - this just runs on vdo.ninja/alpha right now, and after finding one bad meshcast/turn server already, I'm hoping to have this be a way to detect them sooner, handling them better.",
"timestamp": 1765155364.513283,
"name": "steveseguin",
"msgid": "1447391245528731841",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
},
{
"content": "Note for SSN extension users: Tiktok broke yesterday, so I pushed an update for it this morning. If you're still having problems with TikTok, and using the Chrome extension version, please update to the newest version. https://socialstream.ninja/docs/download.html#manual-install",
"timestamp": 1765315177.015866,
"name": "steveseguin",
"msgid": "1448061545203634330",
"avatar": "https://cdn.discordapp.com/avatars/227248835251011585/65c32b7b05ec3a9bdf7371aa5df35dbf.png?size=1024",
"attachments": []
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment