Docs

Migrate from Jobs

Move Jobs API code to Transcodings, Assets, and Thumbnails.

Ask your coding agent to migrate your application with the Chunkify skill:

Migrate from Jobs
CodexClaude

Use the Chunkify skill at https://chunkify.dev/SKILL.md to migrate this application from the Jobs API. Move file outputs to Transcodings, HLS to Assets, and JPG images to Thumbnails. Before editing, list each Job call site with its new target and the settings that change. Ask me before migrating HLS Jobs that use encryption, H.265, or AV1.

The Jobs API keeps working during the transition, so you can migrate one code path at a time. Upgrade your SDK to the release that includes Transcodings, Assets, and Thumbnails.

What replaces Jobs

Job format Replacement SDK call
mp4_h264, mp4_h265, mp4_av1, webm_vp9 Transcoding client.transcodings.create
hls_h264 Asset client.assets.create
jpg Thumbnails client.thumbnails.create
hls_h265, hls_av1 No streaming equivalent See HLS

Chunkify now chooses the CPU type and transcoder count for every request.

File outputs to Transcodings

These settings work as before: source_id, metadata, storage.id, storage.path, the format.id, and the format's encoding settings such as crf, video_bitrate, width, height, preset, profilev, level, and gop.

Job Transcoding
transcoder Removed
hls_manifest_id Removed
Unknown fields Rejected with a 400 error
channels: 5 or 7 channels: 6 (5.1) or 8 (7.1)
minrate webm_vp9 only
pixfmt Fewer values per format: no yuvJ, big-endian, yuv410p, or yuv411p formats; AV1 accepts yuv420p and yuv420p10le
disable_video: true format.id: "m4a_aac" with a .m4a path
preset default: veryfast for H.264, 10 for AV1 faster for H.264, 8 for AV1
Integer seek and duration Decimal seconds; seek can be 0
GET /jobs/{id}/files files on the Transcoding
Job transcoders and logs No equivalent; use progress and processing_stage

HLS streaming to Assets

Create one Asset per Source. Chunkify encodes and packages the H.264 HLS ladder.

Job Asset
Group of hls_h264 Jobs One Asset
Highest and lowest rendition max_resolution (1080p or 2160p) and min_resolution
Folder in storage.path path_template
Master playlist manifest.m3u8, published as cdn_url
Per-rendition encoding, hls_time, hls_segment_type, seek, duration Managed by Chunkify
hls_h265, hls_av1 Not available; stream H.264 or create MP4 Transcodings
hls_enc Not available
MP4 download copy static_rendition Asset output
JPG sprite for player scrubbing timeline_previews.cdn_url WebVTT

Images to Thumbnails

Job jpg Thumbnails
interval timestamps or count, up to 100
frames Limit the timestamps or count
seek and duration range.start and range.end
width and height size, the longest edge from 64 to 1920
sprite: true output: "sprites"
chunk_duration Removed
JPEG only format: "jpeg" or "webp"
storage.path such as thumb-%05d.jpg Same template, numbered from 00001, with .webp for WebP. Also writes thumb.vtt.

Events and status

Job Replacement
job.completed with data.job and data.files transcoding.ready with data.transcoding, including its files
job.failed, job.cancelled transcoding.failed, transcoding.cancelled
job.* for HLS asset.playback_ready, asset.ready, asset.failed
job.* for JPG thumbnail.ready, thumbnail.failed
Job statuses such as ingesting or merging Transcoding: preparing, ready, failed, cancelled, expired
Thumbnails: preparing, ready, failed, expired

Add the new events to your webhook before switching a code path. Keep job.* until no Jobs are in progress.