From 925c65990e9dcfd8ae7c27e0ca48cb7a96a50558 Mon Sep 17 00:00:00 2001 From: Rachel Fitzpatrick Date: Thu, 5 Mar 2026 13:48:52 +1100 Subject: [PATCH 1/4] add docs for on-demand thumbnails and filtered webhooks --- millicast/webhooks/index.mdx | 9 +++++++++ millicast/webhooks/thumbnail.mdx | 25 +++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/millicast/webhooks/index.mdx b/millicast/webhooks/index.mdx index ce6af20896dc..a5be281f3ea1 100644 --- a/millicast/webhooks/index.mdx +++ b/millicast/webhooks/index.mdx @@ -158,6 +158,15 @@ The [Thumbnail](/millicast/webhooks/thumbnail.mdx) hook does not use this schema The [ViewerConnection](/millicast/webhooks/viewerconnection.md) hook guide explains how to use viewer connection events to automate your workflow. +## Filtered webhooks + +You may wish to send webhooks for different groups of streams to different webhook URLs. For example you may set up different targets for webhooks relating to different environments, customers or regions. + +You can do this by configuring a **filter** on your webhook. A filter is a regular expression. Only events matching the filter will be sent to the webhook. + +For event types 'feeds', 'media', 'recording', 'thumbnail' and 'viewerConnection' the filter will be applied to the `streamName` data field. +For event type 'transcoder' the filter will be applied to the `transcoderName` data field. + ## Learn more Learn more or find examples by exploring the [developer blog](https://optiview.dolby.com/resources/blog/tag/webhooks) and [code samples](https://github.com/orgs/dolbyio-samples/repositories?q=webhooks). diff --git a/millicast/webhooks/thumbnail.mdx b/millicast/webhooks/thumbnail.mdx index 3c1e8430e6e1..67d8cdaaa6ee 100644 --- a/millicast/webhooks/thumbnail.mdx +++ b/millicast/webhooks/thumbnail.mdx @@ -65,6 +65,7 @@ The following HTTP headers are on the request to identify stream details: - **X-Millicast-Timestamp**: timestamp of the generated thumbnail. - **X-Millicast-Feed-Id**: Dolby.io Real-time Streaming feed id. - **X-Millicast-Stream-Id**: Dolby.io Real-time Streaming stream id. +- **X-Millicast-Token-Id**: Dolby.io Real-time Streaming publish token id. - **X-Millicast-Signature**: SHA1 signature using the hook configured secret (The same signature mechanism used by the other webhooks). ## Troubleshooting @@ -76,6 +77,30 @@ There are a few limitations to be aware of: - Thumbnails cannot be configured to send more or less frequently than every 30 seconds. - Regular intra frames are required to generate the thumbnails. +## On demand thumbnails +If the thumbnails generated every 30 seconds are not interesting or timed appropriately, you may instead create 'on-demand' thumbnails. +Call the /api/thumbnails endpoint to immediately generate a thumbnail for a streamName and/or tokenId and send it to any configured webhooks. +``` +curl --request POST \ + --url https://api.millicast.com/api/thumbnails \ + --header 'accept: application/json' \ + --header 'authorization: Bearer {YOUR_API_SECRET}' \ + --header 'content-type: application/json' \ + --data ' +{ + "streamName": "myStreamName", + "tokenId": 12345 +} +' +``` + +Note that the thumbnail setting on the publish token only controls the regularly scheduled thumbnails every 30 seconds and is not required for on demand thumbnails. +On demand thumbnails and scheduled thumbnails may be used in parallel. + +On demand thumbnails are rate limited to 6 per minute per streamName/tokenId combination. + + + ## Learn more We have some sample code to demonstrate receiving a thumbnail hook and saving it to disk: [Webhook Code Example (download and save)](https://github.com/millicast/samples-millicast-webhooks) From 370dfd16f596a4f4e2a7ee463cb979d2705333e0 Mon Sep 17 00:00:00 2001 From: Rachel Fitzpatrick Date: Thu, 5 Mar 2026 14:03:06 +1100 Subject: [PATCH 2/4] drop recording webhook type --- millicast/webhooks/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/millicast/webhooks/index.mdx b/millicast/webhooks/index.mdx index a5be281f3ea1..0dd9a652135a 100644 --- a/millicast/webhooks/index.mdx +++ b/millicast/webhooks/index.mdx @@ -164,7 +164,7 @@ You may wish to send webhooks for different groups of streams to different webho You can do this by configuring a **filter** on your webhook. A filter is a regular expression. Only events matching the filter will be sent to the webhook. -For event types 'feeds', 'media', 'recording', 'thumbnail' and 'viewerConnection' the filter will be applied to the `streamName` data field. +For event types 'feeds', 'media', 'thumbnail' and 'viewerConnection' the filter will be applied to the `streamName` data field. For event type 'transcoder' the filter will be applied to the `transcoderName` data field. ## Learn more From 01aca42c9f828d13173d73de454258af16b7c4a3 Mon Sep 17 00:00:00 2001 From: Rachel Fitzpatrick <157429324+rhfitz@users.noreply.github.com> Date: Thu, 5 Mar 2026 14:08:19 +1100 Subject: [PATCH 3/4] Update millicast/webhooks/thumbnail.mdx Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- millicast/webhooks/thumbnail.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/millicast/webhooks/thumbnail.mdx b/millicast/webhooks/thumbnail.mdx index 67d8cdaaa6ee..5d485af0edf4 100644 --- a/millicast/webhooks/thumbnail.mdx +++ b/millicast/webhooks/thumbnail.mdx @@ -78,6 +78,7 @@ There are a few limitations to be aware of: - Regular intra frames are required to generate the thumbnails. ## On demand thumbnails + If the thumbnails generated every 30 seconds are not interesting or timed appropriately, you may instead create 'on-demand' thumbnails. Call the /api/thumbnails endpoint to immediately generate a thumbnail for a streamName and/or tokenId and send it to any configured webhooks. ``` From dad87fa35207aded7c3fc88314062108f737342f Mon Sep 17 00:00:00 2001 From: Rachel Fitzpatrick Date: Fri, 6 Mar 2026 09:54:50 +1100 Subject: [PATCH 4/4] fix formatting --- millicast/webhooks/index.mdx | 5 ++--- millicast/webhooks/thumbnail.mdx | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/millicast/webhooks/index.mdx b/millicast/webhooks/index.mdx index 0dd9a652135a..4031dfa9b095 100644 --- a/millicast/webhooks/index.mdx +++ b/millicast/webhooks/index.mdx @@ -162,10 +162,9 @@ The [ViewerConnection](/millicast/webhooks/viewerconnection.md) hook guide expla You may wish to send webhooks for different groups of streams to different webhook URLs. For example you may set up different targets for webhooks relating to different environments, customers or regions. -You can do this by configuring a **filter** on your webhook. A filter is a regular expression. Only events matching the filter will be sent to the webhook. +You can do this by configuring a **filter** on your webhook. A filter is a regular expression. Only events matching the filter will be sent to the webhook. -For event types 'feeds', 'media', 'thumbnail' and 'viewerConnection' the filter will be applied to the `streamName` data field. -For event type 'transcoder' the filter will be applied to the `transcoderName` data field. +For event types 'feeds', 'media', 'thumbnail' and 'viewerConnection' the filter will be applied to the `streamName` data field. For event type 'transcoder' the filter will be applied to the `transcoderName` data field. ## Learn more diff --git a/millicast/webhooks/thumbnail.mdx b/millicast/webhooks/thumbnail.mdx index 5d485af0edf4..c71989df28a9 100644 --- a/millicast/webhooks/thumbnail.mdx +++ b/millicast/webhooks/thumbnail.mdx @@ -79,8 +79,9 @@ There are a few limitations to be aware of: ## On demand thumbnails -If the thumbnails generated every 30 seconds are not interesting or timed appropriately, you may instead create 'on-demand' thumbnails. +If the thumbnails generated every 30 seconds are not interesting or timed appropriately, you may instead create 'on-demand' thumbnails. Call the /api/thumbnails endpoint to immediately generate a thumbnail for a streamName and/or tokenId and send it to any configured webhooks. + ``` curl --request POST \ --url https://api.millicast.com/api/thumbnails \ @@ -100,8 +101,6 @@ On demand thumbnails and scheduled thumbnails may be used in parallel. On demand thumbnails are rate limited to 6 per minute per streamName/tokenId combination. - - ## Learn more We have some sample code to demonstrate receiving a thumbnail hook and saving it to disk: [Webhook Code Example (download and save)](https://github.com/millicast/samples-millicast-webhooks)