> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://mediakind.ferndocs.com/mkio/understanding/core-concepts/assets/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://mediakind.ferndocs.com/_mcp/server. # Assets & Asset Filters Understand how MK.IO assets map to cloud storage and how asset filters change the manifests delivered to players. ## What is an asset? An **asset** in MK.IO is a logical pointer to a location in your cloud storage. It is not a copy of your files: it is a reference that tells MK.IO where to find, process, and stream content. Every asset maps to exactly one storage location: * Azure Blob Storage → a container (or a subfolder within a container) * Amazon S3 → a bucket or prefix The files themselves live in your cloud storage. MK.IO reads from and writes to that location on your behalf. This is why: * Creating an asset does not move or copy any files * An asset can appear empty if the storage location is empty or the container name is incorrect * Deleting an asset in MK.IO can delete the associated files from storage (depending on the deletion setting chosen at creation time) ## What goes into an asset? Assets contain information about digital files stored in cloud storage, including: * Source files: the original uploaded video, audio, or image files * Encoded output: adaptive bitrate segments and manifests produced by encoding jobs * Subtitle and caption files: VTT, SRT, TTML * Thumbnails and images * Log files: generated during processing jobs On the input side, an **encoding job** or a **live output** references an asset as its source or destination. On the output side, a **streaming locator** references an asset to generate playback URLs. ## Naming files within an asset File names within an asset must follow both: * Azure blob name requirements and NTFS name requirements (for Azure storage) * AWS bucket naming rules (for S3 storage) ### Reserved characters The output URL for streaming content is built from the asset file name. File names must not contain any of the following percent-encoding-reserved characters: `!*'();:@&=+$,/?%#[]"`. There can also be only one `.` for the file extension. File names must be 260 characters or fewer. Deleting an asset in MK.IO may also delete the underlying files in your cloud storage, depending on the `containerDeletionPolicy` set when the asset was created. `Delete` removes the storage container’s contents along with the asset record, `Retain` leaves your files in place. Check this setting before deleting. ## Asset Filters and Account Filters Filters let you trim the timeline or restrict the tracks and bitrates exposed by a streaming locator without re-encoding the content. **Asset Filter**: Applied to a specific asset. Lets you define start/end times or filter by track type (video only, specific audio language, etc.) for that individual asset. **Account Filter**: Applied at the account level and reusable across multiple assets. Enforces consistent delivery rules across your entire library without configuring each asset individually. Filters are specified by name when creating a streaming locator, and can be combined (asset filter + account filter). See [Create an asset filter](/mkio/how-to/content-management/create-an-asset-filter) for step-by-step instructions. ## See also [](/mkio/how-to/content-management/add-an-asset-in-mkio/reference-existing-storage) ### Reference existing cloud storage Point MK.IO at content already in Azure or S3 and avoid common empty-asset issues. [](/mkio/how-to/content-management/add-an-asset-in-mkio) ### Add assets into MK.IO Overview of all the ways to create assets in MK.IO.