# Magnolia-CMS Youtube video component

Ready to use Youtube video component. Utilizes Magnolia Rest Client module (see [Rest Client module documention](https://docs.magnolia-cms.com/product-docs/6.2/Modules/List-of-modules/REST-Client-module.html)) to render server side Youtube video player in an \<iframe\>. Optionally, this component is capable of rendering corresponding LD+JSON structured data. The concept of Rest Clients gets rid of the client-side CORS errors. Rest Client calls are cached inside of Magnolia.

## Installation

**Magnolia CLI**

Run in Magnolia's folder:

```bash
mgnl install youtube-rest-client-magnolia
```

**Git**

Clone [magnolia youtube rest client](https://git.magnolia-cms.com/users/kraiskub/repos/youtube-rest-client-magnolia/browse) repository into Magnolia's light modules folder.

```bash
git clone https://git.magnolia-cms.com/scm/~kraiskub/youtube-rest-client-magnolia.git youtube-rest-client
```

## Usage

Use as a standard Magnolia component.

### 1. Make component available

To make this component available for editors you have to register the component in available components in an area definition (see [component template availability documention](https://docs.magnolia-cms.com/product-docs/6.2/Developing/Templating/Template-availability.html#_component_template_availability)).

```yaml
areas:
  main:
    templateScript: /path-to-renderer-template-for-this-area.ftl
    availableComponents:
      youtube-video:
        id: youtube-rest-client:components/youtube-video/youtube-video
```

### 2. Add Youtube video component into a page

- Navigate to a page (respectively area) where the Youtube video is available and add the component into the area
- Fillout the fields in the dialog
  - Link - Youtube video link
  - Render structured data - check to render the LD+JSON structured data

## Configuration

### Youtube API key

This component requires a valid Youtube API key to work properly. Add your API key in **/youtube-rest-client/restClients/youtube.yaml** on line 8:

```yaml
defaultValues: { key: "youtube_api_key", part: "snippet, player" } # Replace "youtube_api_key" with your API key
```

### Rest client

All Youtube Rest Client modifications (adding query parameters, ...) can be done in **/youtube-rest-client/restClients/youtube.yaml**, please refer to [Rest Client module documention](https://docs.magnolia-cms.com/product-docs/6.2/Modules/List-of-modules/REST-Client-module.html) before updating the client.

## License

[MIT](https://choosealicense.com/licenses/mit/)
