Vyso Blog
Automated media distribution: a practical guide
Automated media distribution starts with an approved source asset and a repeatable way to prepare and deliver the versions each channel needs. A website can request an image through a delivery URL; a social publishing tool may need to upload a prepared file. Creating the image, making it available and publishing content are separate operations.
The practical question is where each destination gets its media. That determines which manual exports you can remove, which integrations you need and what happens when an asset changes.
Separate asset preparation, delivery and publishing
Asset preparation creates a representation for a particular use: resizing an image, choosing a crop, adjusting compression or converting it to WebP or AVIF. A transformation pipeline can apply those rules repeatedly while keeping the master file intact.
Asset delivery makes that representation available through a URL, CDN or API. The consuming application still needs to request it and display it in the right place.
Publishing creates or updates content in the destination system. It includes assigning an image to a CMS page, creating a social post or placing an image in an email campaign. Publishing needs the destination's editor, API or a connected publishing tool. An image delivery URL does not perform those actions.
A useful architecture is:
Approved master asset → transformation or preset → channel-specific representation → delivery URL or API → consuming platform.
The consuming platform can be a website, mobile app, CMS, email template, ecommerce system or social publishing workflow. Some can reference the delivered image directly. Others fetch it once and store their own copy.
Define the variants before automating them
Start with one approved master for each image. Record the requirements of the places that will use it: display dimensions, aspect ratio, accepted formats, file-size limits and any required background or transparency. Keep these requirements in a shared specification or configuration instead of relying on filenames such as final-social-small.jpg.
Separate resizing from cropping. Resizing changes dimensions; cropping decides which part of the image survives. A wide banner and a portrait placement often need different compositions. Review the crop before distributing it, particularly when the image contains text, faces or a product that must remain fully visible.
A repeatable pipeline can crop to the intended composition, resize to the required dimensions and then encode the result with an appropriate quality setting. Keep the order explicit. Resizing first and cropping later can produce a different result.
WebP and AVIF are output options to evaluate for compatible destinations. Choose the format the destination accepts, then inspect the actual result. File size and visual quality depend on the source image and encoder settings. A single quality setting will not suit every photograph, screenshot and transparent graphic.
You can implement this with export scripts, a build pipeline, a CMS image service or a DAM with image delivery. Generate a bounded set of variants ahead of time when the destinations are fixed. Request variants on demand when layouts need several sizes, and account for the first request's processing work and later cache reuse.
Connect each channel to the right representation
Channel requirements determine both the image you prepare and the handoff you build. Confirm how the destination consumes media before choosing an integration.
Web: connect delivery URLs to responsive markup
A website can use remote image URLs in its markup or obtain them from an API. With srcset and sizes, it can offer several widths and describe the image's layout size so the browser can choose a suitable representation. Use picture when the layout needs a different crop or alternative formats. MDN's responsive image guide explains these patterns.
Make the delivery rules part of the website's components or media fields. Editors can then select the source image without uploading a separate file for every placement. Check the rendered markup: a CMS, build process or image proxy might create another copy between the source and the browser.
Updates depend on that implementation. A page with a fixed image reference keeps using it until the reference or the content behind it changes. A static build may also require rebuilding before a new reference reaches the page.
Mobile: choose dimensions for the display and pixel density
A small display does not necessarily need a low-resolution image. For a mobile web image displayed at 300 CSS pixels on a screen with a device pixel ratio of 2, a 600-pixel-wide representation is a reasonable candidate, provided the source has enough detail. MDN documents the relationship between CSS pixels and device pixels.
Native apps use their platform's density model; Android's pixel-density guidance explains density-independent dimensions and bitmap variants. Have the app request a suitable image URL through its API or configuration, using formats its image decoder supports.
Set limits on requested dimensions and downloaded bytes. Test under constrained bandwidth, and decide how the app caches images and handles a changed asset reference. Requesting the master file and shrinking it on screen still transfers the master file.
CMS: selecting an asset and publishing a page are different actions
A CMS can store an external image URL when its fields and rendering support that approach. An asset picker requires a connector that lets editors browse the asset library, select an image and save its identifier or URL. Those capabilities need an implemented integration.
Uploading into the CMS's own media library creates another path. WordPress has a media endpoint for media records and fields such as alt_text. Its posts endpoint handles post content and publishing status. Creating a media item does not, by itself, publish the page that uses it.
Check whether the connector retains a remote reference or imports the file. Also specify how it maps captions, credits and accessibility text. Delivering image bytes does not populate those CMS fields.
Email: prepare for the template and the clients that read it
An email template can reference an externally hosted image if the email platform permits it. The email platform controls message composition and sending; the recipient's client controls rendering. A delivery service supplies the image representation.
Use the actual template's image dimensions and test the result in the email clients your audience uses. Mailchimp's image recommendations specify PNG, JPG or GIF and discuss higher-resolution images constrained to their display size. Treat a WebP or AVIF variant prepared for a website as a separate choice requiring email compatibility checks.
Write alternative text in the template's image element or the platform's image block. Metadata stored with an asset does not automatically become the email's alt attribute. The text should suit the image's purpose in that message; W3C's alt decision tree explains how purpose affects the choice.
Inspect the sent message to see whether the platform preserved the remote URL or rehosted the image. Changing the source file does not edit the message's HTML, caption or destination link.
Social: prepare the file, then use a publishing workflow
A DAM can prepare a crop and export for a social placement. Posting to Instagram or another network still requires a publishing step through that platform or a connected scheduler. Check the requirements for the particular placement, including aspect ratio, supported format and captions.
LinkedIn makes the separation explicit. Its Images API initializes an upload and provides an upload URL. Its Posts API creates a post using the uploaded image's identifier. Producing a suitable image in an asset system completes neither operation.
A publishing integration must handle account permissions, authentication and the platform's response. Keep crop review, captions and scheduling in that workflow. After a network imports the file, treat the published image as its own copy. Updating the DAM source does not replace that imported copy; a publishing integration must perform any supported update.
Ecommerce, marketplaces and partner sites: check the import contract
For a product feed or partner integration, establish whether the destination renders a remote URL, downloads the image during an import or requires a direct upload. A URL in a feed can be an import instruction rather than a lasting connection to the source.
Map assets to the destination's product identifiers and record import results. Check its refresh schedule and replacement rules before relying on a feed update. Avoid assuming that every partner retrieves the newest source on each page view.
Decide what an asset replacement should change
There are two different update paths. Identify which one each destination uses, and document how an approved replacement reaches it.
When the destination references a remote URL
A stable URL keeps the reference unchanged. If the delivery system supports changing the representation behind it, later requests can receive new bytes. Cached responses can still contain the earlier image. URL stability and content freshness are separate properties.
Inspect Cache-Control and the cache layers between the source and the reader. A CDN purge does not clear a browser's separate cache. Another strategy is to give each approved revision a different asset key or delivery URL, then update the destination's reference. MDN's HTTP caching guide explains freshness, revalidation and changing URLs when content changes.
A new URL makes the selected revision explicit, but the CMS or application must adopt it. A stable URL reduces reference changes, but needs a defined replacement and cache policy. For an archived campaign or a sent email, retaining the original approved image can be the intended behavior.
Check derivatives as well as originals. A cached crop can remain stale after the source or preset changes. Do not assume a preset edit purges every generated representation, and do not invent a cache lifetime when the service has not documented one.
When the destination stores its own copy
The uploaded or imported file has a separate lifecycle. Replacing the master does not replace the file in a CMS library, scheduler or marketplace. The integration needs another upload or update operation, where the destination supports it.
Keep a mapping from the source asset and approved revision to the destination's media identifier and content record. That gives an update job a specific target. It also lets you distinguish a failed upload from a successful upload followed by a failed publishing action.
Where Vyso fits
Vyso's current product pages describe an asset library that preserves source files and prepares image variants. Its image delivery documentation describes CDN URLs built from an asset key and a transformation chain. Applications can request a representation through cdn.vyso.io.
The transformation reference includes resizing and cropping. The output-format documentation lists JPEG, PNG, WebP and AVIF encoding. Format conversion must be requested through a supported transformation or format-specific operation; automatic format negotiation is not promised.
The Developer API documents authenticated operations for asset management and transformation presets. An integration can use those resources alongside delivery URLs. The website, CMS connector or publishing tool still needs to consume the result and perform its own content operations.
Plan replacements using the documented cache behavior. These capabilities support asset preparation and delivery; they do not establish built-in social scheduling, email campaign publishing or direct CMS publishing.
A workflow you can implement and check
- Keep an approved master and record its revision. Establish who can approve replacements and whether particular channels should retain an older revision.
- Define requirements for each placement, including dimensions, crop, format, file-size constraints and metadata fields.
- Generate or request the required variants. Review the crop and encoded output before connecting them to published content.
- Choose the delivery contract for each destination: a remote URL, an API reference or an uploaded copy. Document the expected update behavior.
- Connect the consuming platform. Map the asset reference and contextual metadata into its fields, and implement publishing separately unless a verified integration performs both steps.
- Handle integration failures. Follow the destination's authentication and API-limit requirements, record its response and check whether an earlier attempt succeeded before retrying a publishing operation.
- Test a replacement from source to destination. Check the generated variants, cache headers, rendered content and any imported copies. Record which destinations updated and which still need an explicit action.
A useful acceptance test follows one image through each destination: identify the source revision, request the expected variant, inspect the published reference and perform a controlled replacement. If the workflow cannot show where the image came from or how it changes, resolve that gap before distributing a larger batch.
Keep going
Make the media library less work.
See how Vyso brings search, enrichment, cleanup, and delivery into one product.
Start free