

OdinOnDemand (OOD) adds several forms of multimedia to Valheim that allow players to natively watch YouTube as well as direct video files on in-game screens. The mod also contains a boombox/gramophone that can play YouTube, SoundCloud links, as well as direct audio files -- additionally, all of this is multiplayer compatible and seemingly relatively low-impact.
ValMedia recommends playing without bloom while watching for the best viewing experience.
0.9.70 adds a new screen, remote controls, and playlist support! Again, I changed a lot behind the scenes, and I can't extensively test multiplayer so please report any issues on Nexus or GitHub. Enjoy!
This mod is in beta and has not been extensively tested. Please report any issues on the Nexus or GitHub tracker.
Installation of the plugin is fairly straightforward, just install into Bepinex/plugins or use r2modman. It must be installed on both server and client.
Recipes can now be tweaked through a json file located at BepInEx\config\com.ood.valmedia.recipes.json, the mod will automatically make this. However the default recipe file can be found here if needed.
Some helpful links to help you edit this file are here
Beautify JSON to made it readable, and validate it here
Unless you know what you're doing, please only change the requirements section. If you have any issues keep in mind you can delete your .json file and the mod will re-create it with default values.
The remote control recipe can't be tweaked yet, you can always use a mod like WackysDB for the time being.
In game, place down a cinema screen or boombox.
Interact with it to open the GUI.
For cinema screens, you must have either a direct link to a remote or local video file of a compatible codec or use a youtube/youtu.be link. YouTube should work natively. There is an optional self-hosted backup API, if interested check GitHub.
For boomboxes, you must have a direct link to a remote or local audio file of a compatible codec, a soundcloud.com link, or a youtube/youtu.be link. Through testing I've noticed some SoundCloud songs are unavailable. I think it depends on the artist and how they upload/license their art.
Local files are not synced over multiplayer.
Put the link into the input field and click set to set a file. Control playback with play, pause, and stop. Press "Pickup" to remove the media-player and refund materials. Control individual player's volume with "+" and "-" and toggle mute with the "M" button on the overflow menu. ">" to track forward. You can enable or disable looping in the overflow menu as well.
You can also play YouTube playlists. When a playlist is set, a new panel will appear with playlist info. You can choose to shuffle the playlist in the overflow panel. If you turn on looping while a playlist is active, the whole playlist will loop - not individual videos. The Viking who sets the playlist handles playlist logic, so if they leave the area or disconnect playlist playback will stop, but it is multiplayer synced. Try not to skip through tracks too fast.
Media-players can be controlled from a distance with a remote control. A remote control can be crafted with 1 bronze. Simply equip, point at a media-player and click. Config options include max controller distance, and an option to make remote control access private.
In the mod settings you can control master volume. This will affect every screen/boombox.
All set file/play/pause/stop/looping commands should be synced for multiplayer through RPC events. Volume and tracking are client sided. Tracking will de-sync. Screens do not currently check for sync or update to currently playing videos when connecting/loading new media-players.
If you have V-Sync force enabled in your GPU driver control panel, the mod may not function.

If the mod fails to play any sort of video file, not just YouTube, check your Player.log. If there are errors about Direct3D and refresh rate / v-sync you may have to do this. Please check your GPU driver's control panel and make sure the vertical sync setting is either identical your in-game settings or set to "match application setting"
Build by DanAugust Last picture is with back-light setting turned off.
For any tech-savvy Vikings out there, there is a backup YouTube api that can be self hosted using Node and youtube-dl. This is completely optional and not required as long as the built in library is maintained (YouTubeExplode)