@transcodely/sdk 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -3961,7 +3961,11 @@ declare enum HDRMode {
3961
3961
  */
3962
3962
  HDR_MODE_PASSTHROUGH = 1,
3963
3963
  /**
3964
- * Convert HDR to SDR via tone mapping.
3964
+ * Convert HDR to SDR via tone mapping. Requires an HDR input: whether the
3965
+ * input carries HDR color signaling is only knowable once it has been
3966
+ * probed, so a tone-map job on an SDR source is accepted at create and then
3967
+ * fails at probe time with error code `input_not_hdr`, before any encode
3968
+ * starts.
3965
3969
  *
3966
3970
  * @generated from enum value: HDR_MODE_TONEMAP = 2;
3967
3971
  */
@@ -4492,12 +4496,12 @@ declare class SubtitleTrack extends Message<SubtitleTrack> {
4492
4496
  /**
4493
4497
  * Generate an AI chapters track from the transcript this track produces.
4494
4498
  *
4495
- * Only meaningful together with the (upcoming) `generate` subtitle operation:
4496
- * when enabled, an AI pass over the generated transcript produces a chapters
4499
+ * Only meaningful together with the `generate` subtitle operation: when
4500
+ * enabled, an AI pass over the generated transcript produces a chapters
4497
4501
  * track delivered as WebVTT plus JSON. Free — no pricing impact. The
4498
4502
  * transcript text is processed via the Anthropic API (an external
4499
- * subprocessor). Until the `generate` operation ships, setting this is
4500
- * rejected at job creation.
4503
+ * subprocessor). Caption generation is available; the auto-chapters pass is
4504
+ * not yet, so setting this is still rejected at job creation.
4501
4505
  *
4502
4506
  * @generated from field: optional bool generate_chapters = 12;
4503
4507
  */
@@ -4550,9 +4554,9 @@ declare class ChapterPoint extends Message<ChapterPoint> {
4550
4554
  * responses). It is produced by the opt-in auto-chapters pass over generated
4551
4555
  * captions (SubtitleTrack.generate_chapters).
4552
4556
  *
4553
- * Not yet populated: the auto-chapters feature is rolling out together with
4554
- * generated captions. Fields are documented here so consumers can code against
4555
- * the shape ahead of the rollout.
4557
+ * Not yet populated: the auto-chapters pass has not shipped yet. Fields are
4558
+ * documented here so consumers can code against the shape ahead of the
4559
+ * rollout.
4556
4560
  *
4557
4561
  * @generated from message transcodely.v1.ChapterResult
4558
4562
  */
@@ -4673,6 +4677,30 @@ declare class SubtitleResult extends Message<SubtitleResult> {
4673
4677
  * @generated from field: string transcript_url = 10;
4674
4678
  */
4675
4679
  transcriptUrl: string;
4680
+ /**
4681
+ * Ready-to-fetch HTTPS URL for the caption file, signed and time-limited.
4682
+ *
4683
+ * Points at the same object as url, but as a CDN URL a browser or player can
4684
+ * load — url is a raw storage URI ("s3://…") that no client can fetch.
4685
+ * Present only for jobs writing to Transcodely-managed storage (an
4686
+ * output_origin with provider "transcodely"); jobs writing to your own bucket
4687
+ * get nothing here and should sign url with their own credentials.
4688
+ *
4689
+ * Emitted on single-job reads (Get, Watch) and never on List, and expires —
4690
+ * 6 hours by default — so re-read the job for a fresh one rather than
4691
+ * storing it.
4692
+ *
4693
+ * @generated from field: optional string signed_url = 11;
4694
+ */
4695
+ signedUrl?: string;
4696
+ /**
4697
+ * Ready-to-fetch HTTPS URL for the segment transcript, signed and
4698
+ * time-limited. Same rules and lifetime as signed_url; set only for generate
4699
+ * tracks, which are the only ones carrying a transcript.
4700
+ *
4701
+ * @generated from field: optional string transcript_signed_url = 12;
4702
+ */
4703
+ transcriptSignedUrl?: string;
4676
4704
  constructor(data?: PartialMessage<SubtitleResult>);
4677
4705
  static readonly runtime: typeof proto3;
4678
4706
  static readonly typeName = "transcodely.v1.SubtitleResult";
@@ -4739,41 +4767,59 @@ declare enum EncryptionScheme {
4739
4767
  * Bring Your Own Key configuration.
4740
4768
  * Client provides their own encryption keys.
4741
4769
  *
4770
+ * Write-only apart from key_id. Every read — CreateJob, GetJob, ListJobs, the
4771
+ * Watch snapshots and the webhook payloads — returns key_id and nothing else;
4772
+ * the content key, the PSSH boxes and the FairPlay IV/URI are never echoed
4773
+ * back. Because key is a non-optional scalar it still appears on the wire as
4774
+ * the empty string; that means "never returned", not "empty key". A job read
4775
+ * back from the API therefore cannot be resubmitted verbatim — repopulate key
4776
+ * from your own records first.
4777
+ *
4778
+ * Outputs created before the key id got its own storage column (2026-07-30)
4779
+ * carry no key id and return no byok block at all. There is no backfill:
4780
+ * recovering their id would mean opening the encrypted config envelope.
4781
+ *
4742
4782
  * @generated from message transcodely.v1.BYOKConfig
4743
4783
  */
4744
4784
  declare class BYOKConfig extends Message<BYOKConfig> {
4745
4785
  /**
4746
4786
  * Key identifier (32 hex characters).
4747
4787
  *
4788
+ * The one BYOK field returned on reads. It names which key encrypted an
4789
+ * output — the way an API key's prefix and last-4 name the key — so the
4790
+ * key in use can be confirmed without keeping separate records.
4791
+ *
4748
4792
  * @generated from field: string key_id = 1;
4749
4793
  */
4750
4794
  keyId: string;
4751
4795
  /**
4752
4796
  * Content encryption key (32 hex characters).
4753
4797
  *
4798
+ * Write-only: encrypted at rest and never returned on any read.
4799
+ *
4754
4800
  * @generated from field: string key = 2;
4755
4801
  */
4756
4802
  key: string;
4757
4803
  /**
4758
- * Widevine PSSH box (base64-encoded, optional).
4804
+ * Widevine PSSH box (base64-encoded, optional). Write-only.
4759
4805
  *
4760
4806
  * @generated from field: optional string pssh_widevine = 3;
4761
4807
  */
4762
4808
  psshWidevine?: string;
4763
4809
  /**
4764
- * PlayReady PSSH XML (optional).
4810
+ * PlayReady PSSH XML (optional). Write-only.
4765
4811
  *
4766
4812
  * @generated from field: optional string pssh_playready = 4;
4767
4813
  */
4768
4814
  psshPlayready?: string;
4769
4815
  /**
4770
- * FairPlay initialization vector (32 hex characters).
4816
+ * FairPlay initialization vector (32 hex characters). Write-only.
4771
4817
  *
4772
4818
  * @generated from field: optional string fairplay_iv = 5;
4773
4819
  */
4774
4820
  fairplayIv?: string;
4775
4821
  /**
4776
- * FairPlay key server URI (skd:// scheme).
4822
+ * FairPlay key server URI (skd:// scheme). Write-only.
4777
4823
  *
4778
4824
  * @generated from field: optional string fairplay_uri = 6;
4779
4825
  */
@@ -4803,6 +4849,9 @@ declare class KeyServerConfig extends Message<KeyServerConfig> {
4803
4849
  /**
4804
4850
  * Authentication token for the key server.
4805
4851
  *
4852
+ * Write-only: encrypted at rest and never returned on any read. The other
4853
+ * two fields of this message are echoed back normally.
4854
+ *
4806
4855
  * @generated from field: optional string auth_token = 2;
4807
4856
  */
4808
4857
  authToken?: string;
@@ -4843,6 +4892,9 @@ declare class DRMConfig extends Message<DRMConfig> {
4843
4892
  /**
4844
4893
  * BYOK configuration (mutually exclusive with key_server).
4845
4894
  *
4895
+ * On reads this is a partial reveal: present with only key_id populated,
4896
+ * or absent entirely for outputs predating the key id column.
4897
+ *
4846
4898
  * @generated from field: optional transcodely.v1.BYOKConfig byok = 3;
4847
4899
  */
4848
4900
  byok?: BYOKConfig;
@@ -6548,7 +6600,8 @@ declare enum ThumbnailMode {
6548
6600
  * Free and bundled — animated previews add NO cost to a job (thumbnails are
6549
6601
  * priced at 0). By default the worker produces BOTH an animated WebP and a
6550
6602
  * muted MP4 loop from the same samples, so a consumer can pick whichever its
6551
- * surface supports. Set `format = webp` to emit only the WebP.
6603
+ * surface supports. Set `format = webp` to emit only the WebP, or
6604
+ * `format = mp4` to emit only the MP4 loop.
6552
6605
  *
6553
6606
  * Sampling is deterministic: unless `start_offsets` is set, clips are taken at
6554
6607
  * fixed 25% / 50% / 75% marks of the source duration (no scene detection).
@@ -6590,7 +6643,15 @@ declare enum ThumbnailFormat {
6590
6643
  /**
6591
6644
  * @generated from enum value: THUMBNAIL_FORMAT_WEBP = 3;
6592
6645
  */
6593
- WEBP = 3
6646
+ WEBP = 3,
6647
+ /**
6648
+ * Animated mode only: produce just the muted MP4 loop (no animated WebP).
6649
+ * Rejected on single/interval/sprite/timestamps specs. Unset format on an
6650
+ * animated spec still produces both artifacts.
6651
+ *
6652
+ * @generated from enum value: THUMBNAIL_FORMAT_MP4 = 4;
6653
+ */
6654
+ MP4 = 4
6594
6655
  }
6595
6656
  /**
6596
6657
  * Thumbnail generation specification.
@@ -6698,7 +6759,7 @@ declare class ThumbnailSpec extends Message<ThumbnailSpec> {
6698
6759
  durationSeconds?: number;
6699
6760
  /**
6700
6761
  * Frames per second of the animated preview (animated mode only).
6701
- * Range: 8-15. Default (unset): 12, applied worker-side. Only valid for
6762
+ * Range: 8-30. Default (unset): 12, applied worker-side. Only valid for
6702
6763
  * animated mode.
6703
6764
  *
6704
6765
  * @generated from field: optional int32 fps = 12;
@@ -6781,6 +6842,24 @@ declare class ThumbnailResult extends Message<ThumbnailResult> {
6781
6842
  * @generated from field: int32 index = 7;
6782
6843
  */
6783
6844
  index: number;
6845
+ /**
6846
+ * Ready-to-fetch HTTPS URL for this thumbnail file, signed and time-limited.
6847
+ *
6848
+ * Points at the same object as url, but as a CDN URL a browser can load —
6849
+ * url is a raw storage URI ("s3://…") that no client can fetch. Present only
6850
+ * for jobs writing to Transcodely-managed storage (an output_origin with
6851
+ * provider "transcodely"); jobs writing to your own bucket get nothing here
6852
+ * and should sign url with their own credentials.
6853
+ *
6854
+ * Emitted on single-job reads (Get, Watch) and never on List, and expires —
6855
+ * 6 hours by default — so re-read the job for a fresh one rather than storing
6856
+ * it. The sprite mode's WebVTT sidecar (format "vtt") is signed so that the
6857
+ * sprite image its cues reference relatively inherits the same
6858
+ * authorization.
6859
+ *
6860
+ * @generated from field: optional string signed_url = 8;
6861
+ */
6862
+ signedUrl?: string;
6784
6863
  constructor(data?: PartialMessage<ThumbnailResult>);
6785
6864
  static readonly runtime: typeof proto3;
6786
6865
  static readonly typeName = "transcodely.v1.ThumbnailResult";
@@ -7641,7 +7720,14 @@ declare class JobOutput extends Message<JobOutput> {
7641
7720
  */
7642
7721
  errorCode?: string;
7643
7722
  /**
7644
- * Error message if failed.
7723
+ * Human-readable summary of why this output failed, in one or two sentences.
7724
+ *
7725
+ * Derived from error_code, not from the transcoder: this field never carries
7726
+ * raw tool output, command lines, stack traces, or file paths. Where a short
7727
+ * safe detail is available it is appended in parentheses, e.g. "(HTTP 404)".
7728
+ *
7729
+ * Match on error_code, not on this text. The wording is documentation, not
7730
+ * API surface, and may be reworded in any release.
7645
7731
  *
7646
7732
  * @generated from field: optional string error_message = 13;
7647
7733
  */
@@ -7720,6 +7806,28 @@ declare class JobOutput extends Message<JobOutput> {
7720
7806
  * @generated from field: repeated transcodely.v1.OutputVariantResult variant_results = 25;
7721
7807
  */
7722
7808
  variantResults: OutputVariantResult[];
7809
+ /**
7810
+ * Ready-to-fetch HTTPS URL for this output, signed and time-limited.
7811
+ *
7812
+ * Points at the same object as output_url — the media file for a progressive
7813
+ * output, the master playlist or MPD for HLS/DASH — but as a CDN URL a
7814
+ * browser or player can load, where output_url is a raw storage URI
7815
+ * ("s3://…") that no client can fetch.
7816
+ *
7817
+ * Present only when the job writes to Transcodely-managed storage (an
7818
+ * output_origin with provider "transcodely") and the output has completed.
7819
+ * Jobs writing to your own bucket get nothing here: we hold no delivery
7820
+ * domain for it, so read output_url and sign it with your own credentials.
7821
+ *
7822
+ * Emitted on single-job reads (Get, Watch) and never on List. The URL expires
7823
+ * — 6 hours by default — so treat it as a fetch handle, not a durable link:
7824
+ * re-read the job for a fresh one rather than storing it. For HLS and DASH it
7825
+ * is signed so that variant playlists and segments referenced by the manifest
7826
+ * inherit the same authorization.
7827
+ *
7828
+ * @generated from field: optional string signed_url = 26;
7829
+ */
7830
+ signedUrl?: string;
7723
7831
  constructor(data?: PartialMessage<JobOutput>);
7724
7832
  static readonly runtime: typeof proto3;
7725
7833
  static readonly typeName = "transcodely.v1.JobOutput";
@@ -8014,7 +8122,9 @@ declare class Job extends Message<Job> {
8014
8122
  */
8015
8123
  inputMetadata?: InputMetadata;
8016
8124
  /**
8017
- * Output renditions.
8125
+ * Output renditions, in the same order as the create request's `outputs`.
8126
+ * The order is stable across every read of the job, so indexing into this
8127
+ * array to find the rendition you asked for is safe.
8018
8128
  *
8019
8129
  * @generated from field: repeated transcodely.v1.JobOutput outputs = 7;
8020
8130
  */
@@ -8052,7 +8162,15 @@ declare class Job extends Message<Job> {
8052
8162
  */
8053
8163
  errorCode?: string;
8054
8164
  /**
8055
- * Error message if status is FAILED.
8165
+ * Human-readable summary of why the job failed, in one or two sentences.
8166
+ *
8167
+ * Derived from error_code, not from the transcoder: this field never carries
8168
+ * raw tool output, command lines, stack traces, or file paths. Where a short
8169
+ * safe detail is available it is appended in parentheses, e.g. "(HTTP 404)".
8170
+ * The same text reaches you on the job.failed webhook payload.
8171
+ *
8172
+ * Match on error_code, not on this text. The wording is documentation, not
8173
+ * API surface, and may be reworded in any release.
8056
8174
  *
8057
8175
  * @generated from field: optional string error_message = 11;
8058
8176
  */
@@ -8223,8 +8341,8 @@ declare class Job extends Message<Job> {
8223
8341
  inputVideoId: string;
8224
8342
  /**
8225
8343
  * Auto-generated chapter tracks, one per output whose generated caption track
8226
- * had chapters enabled (SubtitleTrack.generate_chapters). Not yet populated:
8227
- * the auto-chapters feature is rolling out together with generated captions.
8344
+ * had chapters enabled (SubtitleTrack.generate_chapters). Populated once the
8345
+ * auto-chapters pass ships; empty until then.
8228
8346
  *
8229
8347
  * @generated from field: repeated transcodely.v1.ChapterResult chapter_results = 35;
8230
8348
  */
@@ -13208,7 +13326,7 @@ declare class Transcodely {
13208
13326
  }
13209
13327
 
13210
13328
  /** SDK version. Bumped by release-please from package.json on each tag. */
13211
- declare const SDK_VERSION = "0.3.1";
13329
+ declare const SDK_VERSION = "0.3.3";
13212
13330
  /**
13213
13331
  * API version this SDK release is pinned to. Sent on every request as
13214
13332
  * `Transcodely-Version`. Customers can override per-client via the
package/dist/index.d.ts CHANGED
@@ -3961,7 +3961,11 @@ declare enum HDRMode {
3961
3961
  */
3962
3962
  HDR_MODE_PASSTHROUGH = 1,
3963
3963
  /**
3964
- * Convert HDR to SDR via tone mapping.
3964
+ * Convert HDR to SDR via tone mapping. Requires an HDR input: whether the
3965
+ * input carries HDR color signaling is only knowable once it has been
3966
+ * probed, so a tone-map job on an SDR source is accepted at create and then
3967
+ * fails at probe time with error code `input_not_hdr`, before any encode
3968
+ * starts.
3965
3969
  *
3966
3970
  * @generated from enum value: HDR_MODE_TONEMAP = 2;
3967
3971
  */
@@ -4492,12 +4496,12 @@ declare class SubtitleTrack extends Message<SubtitleTrack> {
4492
4496
  /**
4493
4497
  * Generate an AI chapters track from the transcript this track produces.
4494
4498
  *
4495
- * Only meaningful together with the (upcoming) `generate` subtitle operation:
4496
- * when enabled, an AI pass over the generated transcript produces a chapters
4499
+ * Only meaningful together with the `generate` subtitle operation: when
4500
+ * enabled, an AI pass over the generated transcript produces a chapters
4497
4501
  * track delivered as WebVTT plus JSON. Free — no pricing impact. The
4498
4502
  * transcript text is processed via the Anthropic API (an external
4499
- * subprocessor). Until the `generate` operation ships, setting this is
4500
- * rejected at job creation.
4503
+ * subprocessor). Caption generation is available; the auto-chapters pass is
4504
+ * not yet, so setting this is still rejected at job creation.
4501
4505
  *
4502
4506
  * @generated from field: optional bool generate_chapters = 12;
4503
4507
  */
@@ -4550,9 +4554,9 @@ declare class ChapterPoint extends Message<ChapterPoint> {
4550
4554
  * responses). It is produced by the opt-in auto-chapters pass over generated
4551
4555
  * captions (SubtitleTrack.generate_chapters).
4552
4556
  *
4553
- * Not yet populated: the auto-chapters feature is rolling out together with
4554
- * generated captions. Fields are documented here so consumers can code against
4555
- * the shape ahead of the rollout.
4557
+ * Not yet populated: the auto-chapters pass has not shipped yet. Fields are
4558
+ * documented here so consumers can code against the shape ahead of the
4559
+ * rollout.
4556
4560
  *
4557
4561
  * @generated from message transcodely.v1.ChapterResult
4558
4562
  */
@@ -4673,6 +4677,30 @@ declare class SubtitleResult extends Message<SubtitleResult> {
4673
4677
  * @generated from field: string transcript_url = 10;
4674
4678
  */
4675
4679
  transcriptUrl: string;
4680
+ /**
4681
+ * Ready-to-fetch HTTPS URL for the caption file, signed and time-limited.
4682
+ *
4683
+ * Points at the same object as url, but as a CDN URL a browser or player can
4684
+ * load — url is a raw storage URI ("s3://…") that no client can fetch.
4685
+ * Present only for jobs writing to Transcodely-managed storage (an
4686
+ * output_origin with provider "transcodely"); jobs writing to your own bucket
4687
+ * get nothing here and should sign url with their own credentials.
4688
+ *
4689
+ * Emitted on single-job reads (Get, Watch) and never on List, and expires —
4690
+ * 6 hours by default — so re-read the job for a fresh one rather than
4691
+ * storing it.
4692
+ *
4693
+ * @generated from field: optional string signed_url = 11;
4694
+ */
4695
+ signedUrl?: string;
4696
+ /**
4697
+ * Ready-to-fetch HTTPS URL for the segment transcript, signed and
4698
+ * time-limited. Same rules and lifetime as signed_url; set only for generate
4699
+ * tracks, which are the only ones carrying a transcript.
4700
+ *
4701
+ * @generated from field: optional string transcript_signed_url = 12;
4702
+ */
4703
+ transcriptSignedUrl?: string;
4676
4704
  constructor(data?: PartialMessage<SubtitleResult>);
4677
4705
  static readonly runtime: typeof proto3;
4678
4706
  static readonly typeName = "transcodely.v1.SubtitleResult";
@@ -4739,41 +4767,59 @@ declare enum EncryptionScheme {
4739
4767
  * Bring Your Own Key configuration.
4740
4768
  * Client provides their own encryption keys.
4741
4769
  *
4770
+ * Write-only apart from key_id. Every read — CreateJob, GetJob, ListJobs, the
4771
+ * Watch snapshots and the webhook payloads — returns key_id and nothing else;
4772
+ * the content key, the PSSH boxes and the FairPlay IV/URI are never echoed
4773
+ * back. Because key is a non-optional scalar it still appears on the wire as
4774
+ * the empty string; that means "never returned", not "empty key". A job read
4775
+ * back from the API therefore cannot be resubmitted verbatim — repopulate key
4776
+ * from your own records first.
4777
+ *
4778
+ * Outputs created before the key id got its own storage column (2026-07-30)
4779
+ * carry no key id and return no byok block at all. There is no backfill:
4780
+ * recovering their id would mean opening the encrypted config envelope.
4781
+ *
4742
4782
  * @generated from message transcodely.v1.BYOKConfig
4743
4783
  */
4744
4784
  declare class BYOKConfig extends Message<BYOKConfig> {
4745
4785
  /**
4746
4786
  * Key identifier (32 hex characters).
4747
4787
  *
4788
+ * The one BYOK field returned on reads. It names which key encrypted an
4789
+ * output — the way an API key's prefix and last-4 name the key — so the
4790
+ * key in use can be confirmed without keeping separate records.
4791
+ *
4748
4792
  * @generated from field: string key_id = 1;
4749
4793
  */
4750
4794
  keyId: string;
4751
4795
  /**
4752
4796
  * Content encryption key (32 hex characters).
4753
4797
  *
4798
+ * Write-only: encrypted at rest and never returned on any read.
4799
+ *
4754
4800
  * @generated from field: string key = 2;
4755
4801
  */
4756
4802
  key: string;
4757
4803
  /**
4758
- * Widevine PSSH box (base64-encoded, optional).
4804
+ * Widevine PSSH box (base64-encoded, optional). Write-only.
4759
4805
  *
4760
4806
  * @generated from field: optional string pssh_widevine = 3;
4761
4807
  */
4762
4808
  psshWidevine?: string;
4763
4809
  /**
4764
- * PlayReady PSSH XML (optional).
4810
+ * PlayReady PSSH XML (optional). Write-only.
4765
4811
  *
4766
4812
  * @generated from field: optional string pssh_playready = 4;
4767
4813
  */
4768
4814
  psshPlayready?: string;
4769
4815
  /**
4770
- * FairPlay initialization vector (32 hex characters).
4816
+ * FairPlay initialization vector (32 hex characters). Write-only.
4771
4817
  *
4772
4818
  * @generated from field: optional string fairplay_iv = 5;
4773
4819
  */
4774
4820
  fairplayIv?: string;
4775
4821
  /**
4776
- * FairPlay key server URI (skd:// scheme).
4822
+ * FairPlay key server URI (skd:// scheme). Write-only.
4777
4823
  *
4778
4824
  * @generated from field: optional string fairplay_uri = 6;
4779
4825
  */
@@ -4803,6 +4849,9 @@ declare class KeyServerConfig extends Message<KeyServerConfig> {
4803
4849
  /**
4804
4850
  * Authentication token for the key server.
4805
4851
  *
4852
+ * Write-only: encrypted at rest and never returned on any read. The other
4853
+ * two fields of this message are echoed back normally.
4854
+ *
4806
4855
  * @generated from field: optional string auth_token = 2;
4807
4856
  */
4808
4857
  authToken?: string;
@@ -4843,6 +4892,9 @@ declare class DRMConfig extends Message<DRMConfig> {
4843
4892
  /**
4844
4893
  * BYOK configuration (mutually exclusive with key_server).
4845
4894
  *
4895
+ * On reads this is a partial reveal: present with only key_id populated,
4896
+ * or absent entirely for outputs predating the key id column.
4897
+ *
4846
4898
  * @generated from field: optional transcodely.v1.BYOKConfig byok = 3;
4847
4899
  */
4848
4900
  byok?: BYOKConfig;
@@ -6548,7 +6600,8 @@ declare enum ThumbnailMode {
6548
6600
  * Free and bundled — animated previews add NO cost to a job (thumbnails are
6549
6601
  * priced at 0). By default the worker produces BOTH an animated WebP and a
6550
6602
  * muted MP4 loop from the same samples, so a consumer can pick whichever its
6551
- * surface supports. Set `format = webp` to emit only the WebP.
6603
+ * surface supports. Set `format = webp` to emit only the WebP, or
6604
+ * `format = mp4` to emit only the MP4 loop.
6552
6605
  *
6553
6606
  * Sampling is deterministic: unless `start_offsets` is set, clips are taken at
6554
6607
  * fixed 25% / 50% / 75% marks of the source duration (no scene detection).
@@ -6590,7 +6643,15 @@ declare enum ThumbnailFormat {
6590
6643
  /**
6591
6644
  * @generated from enum value: THUMBNAIL_FORMAT_WEBP = 3;
6592
6645
  */
6593
- WEBP = 3
6646
+ WEBP = 3,
6647
+ /**
6648
+ * Animated mode only: produce just the muted MP4 loop (no animated WebP).
6649
+ * Rejected on single/interval/sprite/timestamps specs. Unset format on an
6650
+ * animated spec still produces both artifacts.
6651
+ *
6652
+ * @generated from enum value: THUMBNAIL_FORMAT_MP4 = 4;
6653
+ */
6654
+ MP4 = 4
6594
6655
  }
6595
6656
  /**
6596
6657
  * Thumbnail generation specification.
@@ -6698,7 +6759,7 @@ declare class ThumbnailSpec extends Message<ThumbnailSpec> {
6698
6759
  durationSeconds?: number;
6699
6760
  /**
6700
6761
  * Frames per second of the animated preview (animated mode only).
6701
- * Range: 8-15. Default (unset): 12, applied worker-side. Only valid for
6762
+ * Range: 8-30. Default (unset): 12, applied worker-side. Only valid for
6702
6763
  * animated mode.
6703
6764
  *
6704
6765
  * @generated from field: optional int32 fps = 12;
@@ -6781,6 +6842,24 @@ declare class ThumbnailResult extends Message<ThumbnailResult> {
6781
6842
  * @generated from field: int32 index = 7;
6782
6843
  */
6783
6844
  index: number;
6845
+ /**
6846
+ * Ready-to-fetch HTTPS URL for this thumbnail file, signed and time-limited.
6847
+ *
6848
+ * Points at the same object as url, but as a CDN URL a browser can load —
6849
+ * url is a raw storage URI ("s3://…") that no client can fetch. Present only
6850
+ * for jobs writing to Transcodely-managed storage (an output_origin with
6851
+ * provider "transcodely"); jobs writing to your own bucket get nothing here
6852
+ * and should sign url with their own credentials.
6853
+ *
6854
+ * Emitted on single-job reads (Get, Watch) and never on List, and expires —
6855
+ * 6 hours by default — so re-read the job for a fresh one rather than storing
6856
+ * it. The sprite mode's WebVTT sidecar (format "vtt") is signed so that the
6857
+ * sprite image its cues reference relatively inherits the same
6858
+ * authorization.
6859
+ *
6860
+ * @generated from field: optional string signed_url = 8;
6861
+ */
6862
+ signedUrl?: string;
6784
6863
  constructor(data?: PartialMessage<ThumbnailResult>);
6785
6864
  static readonly runtime: typeof proto3;
6786
6865
  static readonly typeName = "transcodely.v1.ThumbnailResult";
@@ -7641,7 +7720,14 @@ declare class JobOutput extends Message<JobOutput> {
7641
7720
  */
7642
7721
  errorCode?: string;
7643
7722
  /**
7644
- * Error message if failed.
7723
+ * Human-readable summary of why this output failed, in one or two sentences.
7724
+ *
7725
+ * Derived from error_code, not from the transcoder: this field never carries
7726
+ * raw tool output, command lines, stack traces, or file paths. Where a short
7727
+ * safe detail is available it is appended in parentheses, e.g. "(HTTP 404)".
7728
+ *
7729
+ * Match on error_code, not on this text. The wording is documentation, not
7730
+ * API surface, and may be reworded in any release.
7645
7731
  *
7646
7732
  * @generated from field: optional string error_message = 13;
7647
7733
  */
@@ -7720,6 +7806,28 @@ declare class JobOutput extends Message<JobOutput> {
7720
7806
  * @generated from field: repeated transcodely.v1.OutputVariantResult variant_results = 25;
7721
7807
  */
7722
7808
  variantResults: OutputVariantResult[];
7809
+ /**
7810
+ * Ready-to-fetch HTTPS URL for this output, signed and time-limited.
7811
+ *
7812
+ * Points at the same object as output_url — the media file for a progressive
7813
+ * output, the master playlist or MPD for HLS/DASH — but as a CDN URL a
7814
+ * browser or player can load, where output_url is a raw storage URI
7815
+ * ("s3://…") that no client can fetch.
7816
+ *
7817
+ * Present only when the job writes to Transcodely-managed storage (an
7818
+ * output_origin with provider "transcodely") and the output has completed.
7819
+ * Jobs writing to your own bucket get nothing here: we hold no delivery
7820
+ * domain for it, so read output_url and sign it with your own credentials.
7821
+ *
7822
+ * Emitted on single-job reads (Get, Watch) and never on List. The URL expires
7823
+ * — 6 hours by default — so treat it as a fetch handle, not a durable link:
7824
+ * re-read the job for a fresh one rather than storing it. For HLS and DASH it
7825
+ * is signed so that variant playlists and segments referenced by the manifest
7826
+ * inherit the same authorization.
7827
+ *
7828
+ * @generated from field: optional string signed_url = 26;
7829
+ */
7830
+ signedUrl?: string;
7723
7831
  constructor(data?: PartialMessage<JobOutput>);
7724
7832
  static readonly runtime: typeof proto3;
7725
7833
  static readonly typeName = "transcodely.v1.JobOutput";
@@ -8014,7 +8122,9 @@ declare class Job extends Message<Job> {
8014
8122
  */
8015
8123
  inputMetadata?: InputMetadata;
8016
8124
  /**
8017
- * Output renditions.
8125
+ * Output renditions, in the same order as the create request's `outputs`.
8126
+ * The order is stable across every read of the job, so indexing into this
8127
+ * array to find the rendition you asked for is safe.
8018
8128
  *
8019
8129
  * @generated from field: repeated transcodely.v1.JobOutput outputs = 7;
8020
8130
  */
@@ -8052,7 +8162,15 @@ declare class Job extends Message<Job> {
8052
8162
  */
8053
8163
  errorCode?: string;
8054
8164
  /**
8055
- * Error message if status is FAILED.
8165
+ * Human-readable summary of why the job failed, in one or two sentences.
8166
+ *
8167
+ * Derived from error_code, not from the transcoder: this field never carries
8168
+ * raw tool output, command lines, stack traces, or file paths. Where a short
8169
+ * safe detail is available it is appended in parentheses, e.g. "(HTTP 404)".
8170
+ * The same text reaches you on the job.failed webhook payload.
8171
+ *
8172
+ * Match on error_code, not on this text. The wording is documentation, not
8173
+ * API surface, and may be reworded in any release.
8056
8174
  *
8057
8175
  * @generated from field: optional string error_message = 11;
8058
8176
  */
@@ -8223,8 +8341,8 @@ declare class Job extends Message<Job> {
8223
8341
  inputVideoId: string;
8224
8342
  /**
8225
8343
  * Auto-generated chapter tracks, one per output whose generated caption track
8226
- * had chapters enabled (SubtitleTrack.generate_chapters). Not yet populated:
8227
- * the auto-chapters feature is rolling out together with generated captions.
8344
+ * had chapters enabled (SubtitleTrack.generate_chapters). Populated once the
8345
+ * auto-chapters pass ships; empty until then.
8228
8346
  *
8229
8347
  * @generated from field: repeated transcodely.v1.ChapterResult chapter_results = 35;
8230
8348
  */
@@ -13208,7 +13326,7 @@ declare class Transcodely {
13208
13326
  }
13209
13327
 
13210
13328
  /** SDK version. Bumped by release-please from package.json on each tag. */
13211
- declare const SDK_VERSION = "0.3.1";
13329
+ declare const SDK_VERSION = "0.3.3";
13212
13330
  /**
13213
13331
  * API version this SDK release is pinned to. Sent on every request as
13214
13332
  * `Transcodely-Version`. Customers can override per-client via the