How can I get my images and videos to render without the user having to run all cells?

Glad you’ve found trusting is way to go to get what you need. (I wonder if that works for Plotly plots, too? --> UPDATE: it indeed does, see example here.)

Just to clarify something…
It isn’t re-running 2*3 when you launch a session and open your previously saved notebook via MyBinder. Just displaying the previously made output. Certain output isn’t handled upon reopening. I am assuming something did get saved in the output cell from the original run since it seems to make a space for when it isn’t trusted but you’d have to verify by looking at the output for that cell while viewing the notebook in a text editor. For example, .png images displayed in an output cell via from IPython.display import Image get saved as Base64 code upon saving the Jupyter notebook and you’ll see the image rendered when you reopen it. I don’t know what from video gets saved as in an output cell.
The notebook code is not re-run upon opening in general. That is why you can see most output instantly when opening the notebook on MyBinder.org. Voila can re-run code before it renders the output though.