How RSS Feeds Carry Images, Podcasts and Video With Enclosures and Media RSS
An RSS item is text: a title, a link, a description. Files ride along in two ways. The old one is the enclosure element, which is how every podcast on earth is delivered. The richer one is Media RSS, a namespace that describes images and video in detail. Plenty of feeds use both.
A good real example is the media feed at pxef.com/feed/media/. It's a WordPress site's media library published as a feed, one item per image, with 557 items in it right now. Each item carries the picture both ways.
Image: Pixel Effects
Enclosure
The enclosure is part of the core RSS 2.0 spec. It has exactly three attributes, all required:
<enclosure url="https://pxef.com/wp-content/uploads/2026/11/palermo-fountain-cinematic.jpg"
length="367975" type="image/jpeg" />
url is the file. length is its size in bytes. type is the MIME type. That's all, and that's the point. A podcast app needs nothing more to download an episode: an MP3 URL, how big it is, and that it's audio/mpeg.
The RSS Advisory Board's best practices recommend one enclosure per item, because readers disagree about what to do with several. Most take the first and ignore the rest. If an item has a podcast episode and a cover image, the episode goes in the enclosure and the image goes somewhere else.
Podcast feeds add their own namespaces on top, mostly Apple's itunes: tags and, more recently, the Podcasting 2.0 podcast: namespace for chapters, transcripts and funding links. But the audio file itself still travels in a plain enclosure.
Media RSS
Media RSS was created by Yahoo in the mid-2000s for photo and video feeds. The RSS Advisory Board looks after it now. It lives in its own namespace:
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
The main element is media:content, which can say far more than an enclosure. The same pxef.com item:
<media:content url="https://pxef.com/wp-content/uploads/2026/11/palermo-fountain-cinematic.jpg"
type="image/jpeg" medium="image" fileSize="367975"
width="1536" height="1024">
<media:title type="plain">Palermo fountain cinematic street photography</media:title>
</media:content>
Now a reader knows the dimensions before downloading, so it can lay out a grid or pick a crop. medium says whether it's an image, video, audio or document.
Other useful elements:
media:thumbnailfor a small preview, which most readers use for the card image.media:creditfor the photographer or creator.media:descriptionandmedia:keywordsfor captions and tags.media:groupto bundle several versions of the same thing, like one video in three resolutions.media:licenseandmedia:ratingfor rights and audience.
Which readers use what
Readers don't agree on where to look for a card image. Some check media:thumbnail first, some take an image enclosure, some grab the first <img> in the description, and a few ignore images entirely. That's why the pxef.com feed is a sensible belt and braces setup. Every reader finds the picture one way or another, and the <img> in the description covers the simplest ones.
Practical advice
For a blog, add a media:thumbnail or media:content for each post's lead image. Feeds that don't usually end up as plain text cards in readers.
For a podcast, put the audio in a single enclosure with the real byte length. Some apps refuse to download if the length is zero or wrong.
For a photo site, consider a separate media feed like pxef.com's. It turns a media library into something other sites, slideshows and aggregators can pick up without scraping. The rest of the Syndicator network does the same at mediagallery.org, mediainstances.com and travelmktg.com.
Whatever you do, use absolute HTTPS URLs for every file. A relative URL in a feed means nothing once the item leaves your site.