YouTube
A node that opens YouTube search results in an internal WebView, clicks the nth video to play it, and outputs that rendering to a RenderTexture. Changing Search Query re-runs the search (after a 500ms throttle) and plays from the first result. Next Result / Previous Result move back and forth within the search results. Volume is clamped to 0–1 and applied to the page’s <video> element with JavaScript.
- After playback starts, it presses the ad skip button while stretching the player element to fill the screen with CSS and hiding the header, related videos, comments, and so on (up to 10 retries)
- The rendering resolution is the global resolution ×
resolution(default 0.5), and is decided only once, when the node initializes
Because this node is marked
hidden, it does not appear in the list in the node-add UI.
This node requires a license for the official plugin Web Modules. If you add it without a license, a dialog asks whether to open the purchase page, and the node is deleted.
Its behavior depends on YouTube’s DOM structure (selectors such as
ytd-video-rendererand#movie_player). Changes on the page side can stop the clicking of search results or the full-screen treatment from working.
Input ports
| Port ID | Type |
|---|---|
Search Query | string |
Next Result | trigger |
Previous Result | trigger |
Volume | float |
Output ports
| Port ID | Type |
|---|---|
Render Texture | RenderTexture |
Scriptable members
| Path | Type |
|---|---|
queryInput | string |
volumeInput | float |
searchQuery | string |
resolution | float |
autoFullscreen | bool |
currentVideoTitle | string |
currentIndex | int |
volume | float |
currentTime | float |
duration | float |
isMuted | bool |
Synapse Apps (scripting)
await synapse.modules.create({ type: "YouTubeMV" }) 
