YouTube

Read with AI
All docs in one file (llms-full.txt)
YouTubeMV #Source #Node
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-renderer and #movie_player). Changes on the page side can stop the clicking of search results or the full-screen treatment from working.

Input ports

Port IDType
Search Querystring
Next Resulttrigger
Previous Resulttrigger
Volumefloat

Output ports

Port IDType
Render TextureRenderTexture

Scriptable members

PathType
queryInputstring
volumeInputfloat
searchQuerystring
resolutionfloat
autoFullscreenbool
currentVideoTitlestring
currentIndexint
volumefloat
currentTimefloat
durationfloat
isMutedbool

Synapse Apps (scripting)

await synapse.modules.create({ type: "YouTubeMV" })

Also referenced from