# Transcodely > Transcodely turns a source file into streams that play everywhere and only for the people you choose — written to storage you own, at paths you decide, with every combination we sell exercised by a published conformance run whose results and gaps are both on the page. HLS and DASH from one CMAF package, H.264/HEVC/VP9/AV1, Widevine/FairPlay/PlayReady with your own keys, signed and time-limited playback URLs, and deterministic output path templates — into your own S3, GCS or R2 bucket, or hosted and delivered by Transcodely. EUR pricing, per-second billing, EU-only encode path on Hetzner. ## What it is for - **Encode into storage you control.** Read from and write to your own S3, GCS, Cloudflare R2 or HTTP origin. A four-level output path template (job → output → origin → system default) resolves before the job starts. A collision between two explicit templates is rejected at create with a `path_collision` error naming the fix; a collision between implicit (origin or default) templates is auto-fixed by appending the output id. Neither case silently overwrites an object. - **Or skip the bucket.** One request with managed delivery turns a source URL into an adaptive ladder on a CDN with an embeddable player, with no storage origin to configure first. - **Gated playback.** Signed, time-limited playback URLs, three visibility tiers, and Widevine, FairPlay and PlayReady (CENC or CBCS) with your own keys or ours. - **Checked, not asserted.** Every codec, container, ladder and DRM path is re-run as a real job on a real worker, with the output downloaded and inspected. Results and the tracked gaps — including the combinations we accept and price but do not yet produce end to end — are published at /conformance. ## What it is not - Not a live-streaming platform — no RTMP ingest, no low-latency pipeline, and none planned. - Not a viewer analytics product — plays per video per day, not rebuffer rates or per-viewer sessions. - Not an editor — clip a range, burn in a watermark or subtitles, generate thumbnails; no timeline assembly, clip stitching or vertical re-framing. - Not the cheapest — Bunny Stream gives H.264 encoding away and charges less per GB delivered, and Transcodely buys its CDN from them. - **Per-title encoding is available; auto-ABR ladder generation is not.** `content_aware.mode = per_title` is accepted: the worker searches short samples of the source for the highest CRF that still reaches the VMAF target (80-97, default 93) and encodes the declared ladder at it, leaving the rendition count untouched. It is billed at 1.5x per output, and at 1.0x if no search actually chose the CRF. It needs an encoded window of at least 120 seconds and at least one rendition that is not pinned to an explicit bitrate. `content_aware.mode = auto_abr` is rejected at job creation with the error code `parameter_unsupported`. ## MCP server (for AI agents) Transcodely ships a hosted Model Context Protocol server. Fifteen tools, nine of them read-only: nothing on the surface deletes a video, cancels a job, or reads keys, members, plans or invoices. Two tools overwrite a setting (a custom preset, an app's spend limit) and reach only work created after them; nothing else changes existing state. Agents connect with one URL and one browser authorization — no API key to create or paste. - Server URL (streamable HTTP): https://mcp.transcodely.com/mcp - Connect from Claude Code: `claude mcp add --transport http transcodely https://mcp.transcodely.com/mcp` - Auth: OAuth 2.1 with PKCE via browser consent; a new account is provisioned during authorization if you don't have one - Tools that start billable work: create_job, create_video_from_url, generate_captions - Tools that create something at no charge: create_preset - Tools that only read: get_ingest_rule, get_job_status, get_output_report, get_usage, get_video, list_ingest_events, list_ingest_rules, list_jobs, list_presets - Tools that overwrite a setting, forward-only: set_spend_limit, update_preset - set_spend_limit is the one tool with its own authorization rule: an organization owner or admin signed in through the browser. API-key sessions are refused - Every call is scoped to one app and written to the audit log - [MCP product page](https://www.transcodely.com/mcp): what the server does and how to connect - [MCP connect guide](https://www.transcodely.com/docs/guides/mcp): setup for Claude, Claude Code, and Cursor, with example prompts ## Docs Every docs page is also served as raw markdown: append `.md` to its URL, e.g. https://www.transcodely.com/docs/guides/webhook-integration.md - [Documentation home](https://www.transcodely.com/docs): API reference and guides - [Quickstart](https://www.transcodely.com/docs/getting-started/quickstart): one request, from a source URL to a playable ladder - [Adaptive streaming guide](https://www.transcodely.com/docs/guides/adaptive-streaming): HLS/DASH ladders - [Output paths guide](https://www.transcodely.com/docs/guides/output-paths): the four-level template hierarchy and collision handling - [AI captions guide](https://www.transcodely.com/docs/guides/ai-captions): automatic caption generation - [Webhook integration guide](https://www.transcodely.com/docs/guides/webhook-integration): signed webhooks - [Storage setup guide](https://www.transcodely.com/docs/guides/storage-setup): bring your own S3/GCS/R2 or use managed storage - [DRM reference](https://www.transcodely.com/docs/api-reference/drm): Widevine, FairPlay, PlayReady; BYOK or key server ## Product - [Home](https://www.transcodely.com/): encoding into storage you control - [Transcoding API](https://www.transcodely.com/transcoding): encode into your own S3, GCS or R2 — HLS, DASH or MP4 from one CMAF package, per output minute - [Why Transcodely](https://www.transcodely.com/why): the queue, HLS packaging, storage lifecycle and bandwidth math — what is built, what is not, and who to buy instead - [Hosting](https://www.transcodely.com/hosting): managed storage, CDN delivery, built-in player - [Pricing](https://www.transcodely.com/pricing): per-second EUR pricing; a failed job bills €0 - [Cost calculator](https://www.transcodely.com/calculator) - [Conformance](https://www.transcodely.com/conformance): validation harness results per codec/container/feature, gaps included ## Tools - [ffmpeg command to API request](https://www.transcodely.com/tools/ffmpeg-to-transcodely): paste an ffmpeg command, get the equivalent job request as JSON, curl, JavaScript or Python; runs entirely in the browser and names every flag it cannot map - [HLS checker](https://www.transcodely.com/tools/hls-check): free HLS/CMAF conformance checker; paste a playlist URL and get RFC 8216 findings plus a CODECS-vs-initialization-segment comparison, with a seven-day shareable link. No key, no signup ## Comparisons - [Compare](https://www.transcodely.com/compare): the fork — who should buy which of us - [Transcodely vs Mux](https://www.transcodely.com/compare/mux) - [Transcodely vs Cloudflare Stream](https://www.transcodely.com/compare/cloudflare-stream) - [Transcodely vs Bunny Stream](https://www.transcodely.com/compare/bunny-stream)