Repository: holoviz/panel

Issue:
Video widget appears to be broken in 0.11.x?
#### ALL software version info
Python 3.8.3 x64

Output of `pip list` in the virtualenv I tested this in:
```
Package             Version
------------------- ---------
argon2-cffi         20.1.0
async-generator     1.10
attrs               20.3.0
backcall            0.2.0
bleach              3.3.0
bokeh               2.3.0
certifi             2020.12.5
cffi                1.14.5
chardet             4.0.0
colorama            0.4.4
decorator           4.4.2
defusedxml          0.7.1
entrypoints         0.3
idna                2.10
ipykernel           5.5.0
ipython             7.21.0
ipython-genutils    0.2.0
ipywidgets          7.6.3
jedi                0.18.0
Jinja2              2.11.3
jsonschema          3.2.0
jupyter             1.0.0
jupyter-client      6.1.12
jupyter-console     6.3.0
jupyter-core        4.7.1
jupyterlab-pygments 0.1.2
jupyterlab-widgets  1.0.0
Markdown            3.3.4
MarkupSafe          1.1.1
mistune             0.8.4
nbclient            0.5.3
nbconvert           6.0.7
nbformat            5.1.2
nest-asyncio        1.5.1
notebook            6.1.0
numpy               1.20.1
packaging           20.9
pandocfilters       1.4.3
panel               0.11.1
param               1.10.1
parso               0.8.1
pickleshare         0.7.5
Pillow              8.1.2
pip                 20.1.1
prometheus-client   0.9.0
prompt-toolkit      3.0.17
pycparser           2.20
pyct                0.4.8
Pygments            2.8.1
pyparsing           2.4.7
pyrsistent          0.17.3
python-dateutil     2.8.1
pyviz-comms         2.0.1
pywin32             300
pywinpty            0.5.7
PyYAML              5.4.1
pyzmq               22.0.3
qtconsole           5.0.3
QtPy                1.9.0
requests            2.25.1
Send2Trash          1.5.0
setuptools          46.4.0
six                 1.15.0
terminado           0.9.3
testpath            0.4.4
tornado             6.1
tqdm                4.59.0
traitlets           5.0.5
typing-extensions   3.7.4.3
urllib3             1.26.4
wcwidth             0.2.5
webencodings        0.5.1
wheel               0.34.2
widgetsnbextension  3.5.1
```
Tested on recent versions of Firefox and Chrome, Win10 and Linux. 

The problem occurs on both 0.11.0 and 0.11.1, but does not happen if I simply downgrade to 0.10.3. 

#### Description of expected behavior and the observed behavior

Initially noticed this trying to play other videos, but it happens with the reference [Video pane example notebook](https://raw.githubusercontent.com/holoviz/panel/master/examples/reference/panes/Video.ipynb). When the cell creating the widget is executed, the video never loads. Checking the generated HTML reveals that the src attribute is empty:

```
<video height="360" width="640" controls="" src="" loop="" style="object-fit: fill; min-width: 100%; min-height: 100%;"></video>
```
compared to the working version from 0.10.3:
```
<video height="360" width="640" controls="" src="https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_640_3MG.mp4" loop="" style="object-fit: fill; min-width: 100%; min-height: 100%;"></video>
```

#### Complete, minimal, self-contained example code that reproduces the issue

Just run the reference [Video.ipynb notebook](https://raw.githubusercontent.com/holoviz/panel/master/examples/reference/panes/Video.ipynb). 

#### Stack traceback and/or browser JavaScript console output

There don't seem to be any obvious errors in the JS console or the jupyter server output. A sample log from the JS console when restarting and then running the notebook:

```
kernel.js:106 Kernel: kernel_restarting (28828522-1f07-401a-bb70-0aaa5f7fbf15)
kernel.js:106 Kernel: kernel_created (28828522-1f07-401a-bb70-0aaa5f7fbf15)
kernel.js:463 Starting WebSockets: ws://localhost:8888/api/kernels/28828522-1f07-401a-bb70-0aaa5f7fbf15
kernel.js:106 Kernel: kernel_connected (28828522-1f07-401a-bb70-0aaa5f7fbf15)
kernel.js:106 Kernel: kernel_starting (28828522-1f07-401a-bb70-0aaa5f7fbf15)
kernel.js:106 Kernel: kernel_ready (28828522-1f07-401a-bb70-0aaa5f7fbf15)
kernel.js:106 Kernel: kernel_ready (28828522-1f07-401a-bb70-0aaa5f7fbf15)
bokeh-2.3.0.min.js:184 [bokeh] setting log level to: 'info'
bokeh-2.3.0.min.js:165 [bokeh] document idle at 14 ms
```

#### Screenshots or screencasts of the bug in action

How the video widget appears in both Chrome and Firefox: 

![bug1](https://user-images.githubusercontent.com/9051013/111869017-25020380-8975-11eb-8827-a791c256c70f.jpg)
![bug2](https://user-images.githubusercontent.com/9051013/111869021-27fcf400-8975-11eb-8a62-5148b1b6d817.jpg)



Discussion:

Resolving patch:
diff --git a/panel/pane/media.py b/panel/pane/media.py
--- a/panel/pane/media.py
+++ b/panel/pane/media.py
@@ -60,6 +60,8 @@ def applies(cls, obj):
 
     def _get_model(self, doc, root=None, parent=None, comm=None):
         props = self._process_param_change(self._init_params())
+        if self.object is not None:
+            props['value'] = self.object
         model = self._bokeh_model(**props)
         if root is None:
             root = model


Test patch:
diff --git a/panel/tests/pane/test_media.py b/panel/tests/pane/test_media.py
new file mode 100644
--- /dev/null
+++ b/panel/tests/pane/test_media.py
@@ -0,0 +1,10 @@
+from panel.pane import Video
+
+
+def test_video_url(document, comm):
+    url = 'https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_640_3MG.mp4'
+    video = Video(url)
+    model = video.get_root(document, comm=comm)
+
+    # To check if url is send to the bokeh model
+    assert model.value == url