> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daily.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Using session assets in Daily VCS

> Developers can use Daily's VCS SDK to build custom video layouts and add graphics to live streamed and recorded video calls.

<Badge color="blue">Paid plans only</Badge>

Session assets are assets made available to VCS when a live stream or cloud recording is started. For example, a logo image can be included under the `session_assets` property, which can then be applied as an image overlay in your video feed.

Session assets must be specified when starting the live stream or recording. The asset URLs you pass will be preloaded immediately and cached on the server. This ensures the data is instantly available when your rendering makes use of it (for example, when you send a param update to display the logo overlay).

If you are using Daily's VCS baseline composition, session assets can only be images. (**Note**: Only `.png` extensions are permitted.)

```javascript theme={null}
await call.startLiveStreaming({
  rtmpUrl: 'RTMP_URL',
  layout: {
    preset: 'custom', // required
    composition_id: 'daily:baseline', // optional: default value
    composition_params: {
      mode: 'dominant',
      showTextOverlay: true,
      'text.content': 'Hello',
      'text.align_horizontal': 'right',
      'text.align_vertical': 'bottom',
      'text.fontFamily': 'Exo',
      'text.fontWeight': '500',
      'videoSettings.roundedCorners': true,
      'videoSettings.showParticipantLabels': true,
      showImageOverlay: true,
      'image.assetName': 'logo',
    },
    session_assets: {
      // the key can be any string
      // the value must be an absolute URL to a hosted asset
      'images/logo': 'https://example.com/foobar.png',
    },
  },
});
```

When using the VCS SDK to add your own customized VCS components, session assets can include images (as described above), as well as external links to the custom components you would like applied to your live stream or recording video feed:

```javascript theme={null}
await call.startLiveStreaming({
  rtmpUrl: 'RTMP_URL',
  layout: {
    preset: 'custom', // required
    composition_id: 'daily:baseline',
    composition_params: {
      // ... Add your composition params here
    },
    session_assets: {
      'images/logo': 'https://example.com/foobar.png',
      'CustomOverlay.js':
        'https://example.com/my_custom_composition/CustomOverlay.js',
    },
  },
});
```
