YouTube / YouTube Music: BookmarkSnippet-Connector für Playback-Events #9
Labels
No labels
agent:done
agent:ready
agent:working
area:analytics
area:chatbot
area:community
area:content
area:hardware
area:health
area:media
area:monetization
area:overlays
area:productivity
area:streaming
bug
duplicate
effort:large
effort:medium
effort:small
enhancement
good-first-issue
help wanted
invalid
priority:backlog
priority:critical
priority:high
priority:low
priority:medium
question
quick-win
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
frank/streamertool#9
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Kontext
Streamertool hat einen zentralen Event-Bus (
AppEventmitsource,type,payload), über den Connectors wie Twitch, OBS und Streamer.Bot Events bereitstellen. Overlays und Extensions können diese überWS /ws/eventsbzw.SSE /sse/eventsabonnieren.Für YouTube und YouTube Music gibt es aktuell keine Anbindung. Viele Streamer nutzen YT Music als Hintergrundmusik oder spielen YouTube-Videos während des Streams ab — ein Now-Playing-Overlay oder Automatisierungen (z. B. via Streamer.Bot) wären hier sinnvoll.
Da YouTube keine offizielle, streamer-taugliche Playback-API für Browser-Tabs bereitstellt, soll die Überwachung über ein BookmarkSnippet (Bookmarklet / Userscript-Snippet im Browser) erfolgen, das auf
youtube.comundmusic.youtube.comläuft und Playback-Daten an Streamertool meldet.Ziel
Event-Typen
typeyoutube.playyoutube.pauseyoutube.positionsource:youtube(ggf. mitpayload.platform:youtube|youtube-music)Payload (gemeinsam für alle Event-Typen)
positionunddurationin Sekunden (float)coverArt: URL zum Thumbnail / Albumcoveralbum: nur bei YouTube Music befüllt, bei reinem YouTube optional leerBookmarkSnippet (Lieferumfang)
http://127.0.0.1:19850)youtube.position(z. B. alle 1–2 s während Playback, kein Spam im Pause-Zustand)Backend / Connector
POST /api/youtube/snippet)youtubein Admin-UI: Status (letztes Update, verbundenes Tab), Endpoint-URL zum Kopieren, Snippet-InstallationshinweisAkzeptanz
music.youtube.comundwww.youtube.comyoutube.play,youtube.pause,youtube.positionerscheinen in WS/SSE mit vollständigem Payload (title,author,album,position,duration,coverArt)youtube.playmit aktualisierten Metadaten ausOffene Punkte / Hinweise
youtube.track_changedals separates Event (kann initial inyoutube.playmit neuemtitleabgebildet werden)Implementiert in
ba257deund auf main gepusht.Enthalten:
Verifiziert mit make test (TypeScript + 47 Rust-Tests), npm run build sowie JS-Syntaxchecks.