Skip to content

GetHLSStreamingSessionURL

Source: src/AWS/KinesisVideo/GetHLSStreamingSessionURL.ts

Runtime binding for kinesisvideo:GetHLSStreamingSessionURL (archived media data plane).

Bind this operation to a Stream inside a function runtime to get a callable that resolves the per-stream data endpoint (GetDataEndpoint) and returns a short-lived HLS playback URL.

Live HLS Playback URL

// init
const getHls = yield* AWS.KinesisVideo.GetHLSStreamingSessionURL(stream);
// runtime
const { HLSStreamingSessionURL } = yield* getHls({
PlaybackMode: "LIVE",
});

Wire into a Lambda Function

// Provide the GetHLSStreamingSessionURLHttp layer on the Function's
// init Effect. Data-plane calls fan out to GetDataEndpoint first, so
// allow a generous timeout.
export default PlaybackFunction.make(
{ main: import.meta.url, url: true, timeout: Duration.seconds(30) },
Effect.gen(function* () {
const stream = yield* AWS.KinesisVideo.Stream("Camera", {
mediaType: "video/h264",
dataRetention: "24 hours",
});
const getHls = yield* AWS.KinesisVideo.GetHLSStreamingSessionURL(stream);
return {
fetch: Effect.gen(function* () {
const { HLSStreamingSessionURL } = yield* getHls({
PlaybackMode: "LIVE",
});
return HttpServerResponse.json({ url: HLSStreamingSessionURL });
}),
};
}).pipe(Effect.provide(AWS.KinesisVideo.GetHLSStreamingSessionURLHttp)),
);