The name of the generated file. The default is manifest with the
extension suffix corresponding to the Manifest
[type][google.cloud.video.livestream.v1.Manifest.type]. If multiple
manifests are added to the channel, each must have a unique file name.
Maximum number of segments that this manifest holds. Once the manifest
reaches this maximum number of segments, whenever a new segment is added to
the manifest, the oldest segment will be removed from the manifest.
The minimum value is 3 and the default value is 5.
How long to keep a segment on the output Google Cloud Storage bucket after
it is removed from the manifest. This field should be large enough to cover
the manifest propagation delay. Otherwise, a player could receive 404
errors while accessing segments which are listed in the manifest that the
player has, but were already deleted from the output Google Cloud Storage
bucket. Default value is 60s.
If both segment_keep_duration and
[RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
are set,
[RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
is used and segment_keep_duration is ignored.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eManifest\u003c/code\u003e class in the Google Cloud Live Stream v1 API is used to configure manifest files for streaming, supporting both HLS and DASH formats.\u003c/p\u003e\n"],["\u003cp\u003eIt allows setting properties like \u003ccode\u003eFileName\u003c/code\u003e, \u003ccode\u003eKey\u003c/code\u003e, \u003ccode\u003eMaxSegmentCount\u003c/code\u003e, \u003ccode\u003eMuxStreams\u003c/code\u003e, \u003ccode\u003eSegmentKeepDuration\u003c/code\u003e, \u003ccode\u003eType\u003c/code\u003e, and \u003ccode\u003eUseTimecodeAsTimeline\u003c/code\u003e to customize the manifest's behavior.\u003c/p\u003e\n"],["\u003cp\u003eThe class has several versions available, with 1.8.0 being the latest, and it implements interfaces such as \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eManifest\u003c/code\u003e class allows for the specification of the number of segments, the type of stream (HLS or DASH), and the time to keep a segment in cloud storage after removal from a manifest.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eMuxStreams\u003c/code\u003e property is a required list that determines which mux streams will appear in a given manifest, and depending on the type of stream (HLS or DASH) different mux streams are used.\u003c/p\u003e\n"]]],[],null,["# Live Stream v1 API - Class Manifest (1.9.0)\n\nVersion latestkeyboard_arrow_down\n\n- [1.9.0 (latest)](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/latest/Google.Cloud.Video.LiveStream.V1.Manifest)\n- [1.8.0](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/1.8.0/Google.Cloud.Video.LiveStream.V1.Manifest)\n- [1.7.0](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/1.7.0/Google.Cloud.Video.LiveStream.V1.Manifest)\n- [1.6.0](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/1.6.0/Google.Cloud.Video.LiveStream.V1.Manifest)\n- [1.5.0](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/1.5.0/Google.Cloud.Video.LiveStream.V1.Manifest)\n- [1.4.0](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/1.4.0/Google.Cloud.Video.LiveStream.V1.Manifest)\n- [1.3.0](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/1.3.0/Google.Cloud.Video.LiveStream.V1.Manifest)\n- [1.2.0](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/1.2.0/Google.Cloud.Video.LiveStream.V1.Manifest)\n- [1.1.0](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/1.1.0/Google.Cloud.Video.LiveStream.V1.Manifest)\n- [1.0.0](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/1.0.0/Google.Cloud.Video.LiveStream.V1.Manifest) \n\n public sealed class Manifest : IMessage\u003cManifest\u003e, IEquatable\u003cManifest\u003e, IDeepCloneable\u003cManifest\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Live Stream v1 API class Manifest.\n\nManifest configuration. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Manifest \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Manifest](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/latest/Google.Cloud.Video.LiveStream.V1.Manifest), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Manifest](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/latest/Google.Cloud.Video.LiveStream.V1.Manifest), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Manifest](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/latest/Google.Cloud.Video.LiveStream.V1.Manifest), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Video.LiveStream.V1](/dotnet/docs/reference/Google.Cloud.Video.LiveStream.V1/latest/Google.Cloud.Video.LiveStream.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Video.LiveStream.V1.dll\n\nConstructors\n------------\n\n### Manifest()\n\n public Manifest()\n\n### Manifest(Manifest)\n\n public Manifest(Manifest other)\n\nProperties\n----------\n\n### FileName\n\n public string FileName { get; set; }\n\nThe name of the generated file. The default is `manifest` with the\nextension suffix corresponding to the `Manifest`\n\\[type\\]\\[google.cloud.video.livestream.v1.Manifest.type\\]. If multiple\nmanifests are added to the channel, each must have a unique file name.\n\n### Key\n\n public string Key { get; set; }\n\nOptional. A unique key for this manifest.\n\n### MaxSegmentCount\n\n public int MaxSegmentCount { get; set; }\n\nMaximum number of segments that this manifest holds. Once the manifest\nreaches this maximum number of segments, whenever a new segment is added to\nthe manifest, the oldest segment will be removed from the manifest.\nThe minimum value is 3 and the default value is 5.\n\n### MuxStreams\n\n public RepeatedField\u003cstring\u003e MuxStreams { get; }\n\nRequired. List of `MuxStream`\n\\[key\\]\\[google.cloud.video.livestream.v1.MuxStream.key\\]s that should appear\nin this manifest.\n\n- For HLS, either `fmp4` or `ts` mux streams can be specified but not mixed.\n- For DASH, only `fmp4` mux streams can be specified.\n\n### SegmentKeepDuration\n\n public Duration SegmentKeepDuration { get; set; }\n\nHow long to keep a segment on the output Google Cloud Storage bucket after\nit is removed from the manifest. This field should be large enough to cover\nthe manifest propagation delay. Otherwise, a player could receive 404\nerrors while accessing segments which are listed in the manifest that the\nplayer has, but were already deleted from the output Google Cloud Storage\nbucket. Default value is `60s`.\n\nIf both segment_keep_duration and\n\\[RetentionConfig.retention_window_duration\\]\\[google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration\\]\nare set,\n\\[RetentionConfig.retention_window_duration\\]\\[google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration\\]\nis used and segment_keep_duration is ignored.\n\n### Type\n\n public Manifest.Types.ManifestType Type { get; set; }\n\nRequired. Type of the manifest, can be `HLS` or `DASH`.\n\n### UseTimecodeAsTimeline\n\n public bool UseTimecodeAsTimeline { get; set; }\n\nWhether to use the timecode, as specified in timecode config, when setting:\n\n- `availabilityStartTime` attribute in DASH manifests.\n- `#EXT-X-PROGRAM-DATE-TIME` tag in HLS manifests.\n\nIf false, ignore the input timecode and use the time from system clock\nwhen the manifest is first generated. This is the default behavior."]]