Videos

Videos#

Videos uploaded to YouTube can be embedded in the Jupyter Book. There are several ways to do so:

1. To embed them in the Jupyter Book, first obtain the embedding link of the video. In order to do so, go to the YouTube page of the video (so not the Brightspace page), then click share in the description box. There should be a button embed, click that. Copy the HTML code that appears in the panel. Then, to embed the video, use the following

    <iframe
    width="560"   
    height="315"
    src="https://www.youtube.com/embed/UCb-b82tzLo?"
    align="center"
    frameborder="0"
    allowfullscreen
    ></iframe>

This HTML-iframe code can be directly included in the markdown file (no need to create a code-cell).

Resulting in the video below:

2. The above solution can be ‘upgraded’, setting a scaling of the video with the width of the screen and align it to the center:

    <div style="display: flex; justify-content: center;">
    <div style="position: relative; width: 70%; height: 0; padding-bottom: 56.25%;">
        <iframe
            src="https://www.youtube.com/embed/YDBr1Lof_mI?si=RhTC31XHv-6gL4Kl"
            style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"
            frameborder="0"
            allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
            allowfullscreen
        ></iframe>
    </div>
    </div>

With the resulting output:

3. Another option is to use a python coding cell. As this code cell should be run when the book is made, you have to change the config file and set execute_notebooks: to force. This comes with the downside that it takes considerable more time to deploy the book.

    ```{code-cell} ipython3
    :tags: [remove-input]
    from IPython.display import YouTubeVideo
    VideoWidth=600
    YouTubeVideo("YDBr1Lof_mI", width=VideoWidth, align='center')
    ```

Moreover, it requires one to have this code at the top of your markdown file:

    ---
    jupytext:
    text_representation:
        extension: .md
        format_name: myst
        format_version: 0.13
        jupytext_version: 1.10.3
    kernelspec:
    display_name: Python 3 (ipykernel)
    language: python
    name: python3
    ---

Note that this is not needed when you use a .ipynb (jupyter notebook) file.