From 33f14b624275eaa57ae16f6cca6cde8d2a2eb841 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Tue, 24 Jun 2025 15:18:22 -0500 Subject: [PATCH 01/14] image tag draft - #668 #671 --- docs/tags/image.md | 174 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 docs/tags/image.md diff --git a/docs/tags/image.md b/docs/tags/image.md new file mode 100644 index 0000000..f90c19b --- /dev/null +++ b/docs/tags/image.md @@ -0,0 +1,174 @@ +## Image +``
+This tag allows for the delivering of images of various sizes and use cases. It is cross-compatible with the `` tag but expands the use cases for delivering more than just square channel or episode art. + +### Parent +  `` or `` or `` + +### Count +  Multiple + +### Attributes +- href (required): The URL to the media you want to embed. +- alt (recommended): A clear and concise accessibility focused text replacement for the image’s content. +- aspect-ratio (recommended): A ratio value such as 1/1, 16/9, 4/1 following the equivalent [CSS syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio). This allows podcasters to provide multiple art directions for the same media. +- width (recommended): The width of the asset in pixels. +- height (optional): The height of the asset in pixels. +- type (optional): Mime type of the media such as image/jpeg or video/mp4. +- purpose (optional): An unordered set of case-insensative, space-separated tokens following the equivalent [W3C syntax](https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#space-separated-tokens). This value should not exceed 128 characters. This allows podcasters to indicate the suggested uses of this media. + +### Notes +The only required attribute is `href`, specifying the url of the asset being delivered. For accessibility, `alt` is also encouraged. + +The `aspect-ratio` and `width` are also encouraged, as they give app developers important information about how they can display your image within their UI. A `height` attribute is also available, but not critical if `aspect-ratio` and `width` are provided. + +The `type` attribute is available for use if the asset being delivered is not a typical image format (JPG/PNG/etc). For instance, if it's a video file, or something a-typical like a WEBP or TIFF image. + +The `purpose` type is encouraged to provide an expected use case to app developers as a display hint. Why was this `` included in the feed? What did the podcast creator intend to be done with it? Is a particular app or platform media asset being targeted? See a fuller explanation of the `purpose` attribute below. + +### Purpose Tokens +The purpose attribute gives podcasters the flexibility to indicate how specific images should be used by podcast apps and other platforms. This attribute accepts a space-separated list of tokens, where each token corresponds to a potential use case or context. While podcast apps may choose whether to honor these tokens, they allow podcasters to signal intent for how their images should be utilized across different platforms and contexts. + +Anyone may define a token and its requirements. For instance, an app might define a token like `truefans/hero` to specify an image that fits their hero banner layout, providing guidelines for aspect ratios, resolution, safe areas, or text presence. A podcaster following these guidelines would include the `truefans/hero` token in the purpose attribute for any media following those guidelines. Here are some suggestions for generic tokens that multiple apps might adopt: +| Token | Guidelines | Prior Art | +|-|-|-| +| artwork | Recommended for representing the show/episode. Should contain your show name and key art. | [Apple’s show artwork](https://podcasters.apple.com/support/896-artwork-requirements#shows) | +| social | Recommended for social preview images. Should contain a landscape version of your artwork. | [Meta’s OG:image](https://developers.facebook.com/docs/sharing/webmasters/images/) | +| canvas | Recommended for immersive Now Playing screens. Should contain your artwork and expect to be overlaid with UI elements. | [Apple’s Full Page Show Art](https://podcasters.apple.com/support/866-promotional-artwork#show-tall)
[Spotify’s Canvas](https://support.spotify.com/us/artists/article/canvas-guidelines/) | +| cover | Recommended for hero to complement your artwork | [YouTube’s channel banner](https://support.google.com/youtube/answer/12950272?hl=en) | +| publisher | Recommended for publisher logos. Should be legible at small sizes. | [Apple’s Channel Icon](https://podcasters.apple.com/support/896-artwork-requirements#channels) | +| circular | Recommended for times when an image is expected to be cropped to a full circle. This should be a "circle safe" image. | + +

+ +## Examples + +### The most basic use cases +Standard square image. Assumed to be 1/1 aspect ratio intended for either podcast art or episode art, depending on if it's in the `` or ``. +```xml + +``` + +### Using `alt` to describe the image +```xml + +``` + +### Using `type` to provide a video file +```xml + +``` + +### Using `width` and `height` instead of giving an aspect ratio +```xml + +``` + +### Using `aspect-ratio` +```xml + + + +``` + +### Using `purpose` +```xml + + +``` + +### Using `purpose` to target a specific platform (ex. [Apple](https://podcasters.apple.com/support/5522-show-hero-template)) +```xml + +``` + +### Using `aspect-ratio` and `purpose` to provide multiple art directions +Multiple image tags in the feed allow apps to select from multiple aspect ratios and media formats to display. +```xml + + +``` + +### More complex examples +```xml + + + + + + +``` \ No newline at end of file From 93eac26d14363e61d41fc91976ef838d1e3dd5cb Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Tue, 24 Jun 2025 15:20:28 -0500 Subject: [PATCH 02/14] image tag draft 2 - #668 #671 --- docs/tags/image.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/tags/image.md b/docs/tags/image.md index f90c19b..a502cc8 100644 --- a/docs/tags/image.md +++ b/docs/tags/image.md @@ -1,12 +1,14 @@ -## Image -``
+# Image + +`` + This tag allows for the delivering of images of various sizes and use cases. It is cross-compatible with the `` tag but expands the use cases for delivering more than just square channel or episode art. ### Parent -  `` or `` or `` +`` or `` or `` ### Count -  Multiple +Multiple ### Attributes - href (required): The URL to the media you want to embed. @@ -39,8 +41,6 @@ Anyone may define a token and its requirements. For instance, an app might defin | publisher | Recommended for publisher logos. Should be legible at small sizes. | [Apple’s Channel Icon](https://podcasters.apple.com/support/896-artwork-requirements#channels) | | circular | Recommended for times when an image is expected to be cropped to a full circle. This should be a "circle safe" image. | -

- ## Examples ### The most basic use cases From 12122aa7f8581b3262ac74e075b97d5c54a926d2 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Tue, 24 Jun 2025 15:23:14 -0500 Subject: [PATCH 03/14] image tag draft 3 - #668 #671 --- docs/tags/images.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/tags/images.md b/docs/tags/images.md index fa09ecb..6ee04f3 100644 --- a/docs/tags/images.md +++ b/docs/tags/images.md @@ -1,7 +1,9 @@ -# Images +# Images (Deprecated) `` +**Important: This tag is now deprecated. The new [podcast:image](image.md) tag should be used instead.** + This tag, when present, allows for specifying many different image sizes in a compact way at either the episode or channel level. The syntax is borrowed from the HTML5 [srcset](https://html.spec.whatwg.org/multipage/images.html#srcset-attributes) syntax. It allows for describing multiple image sources with width and pixel hints directly in the attribute. Although the HTML5 `srcset` attribute allows relative urls, absolute urls are required in this tag - since the feed url may not represent an appropriate base url for relativization. ### Parent From b00efb35a958d8925ac126928de353e8454c28ae Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Tue, 24 Jun 2025 15:24:48 -0500 Subject: [PATCH 04/14] image tag draft 4 - #668 #671 --- docs/tags/images.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tags/images.md b/docs/tags/images.md index 6ee04f3..c189f91 100644 --- a/docs/tags/images.md +++ b/docs/tags/images.md @@ -2,7 +2,7 @@ `` -**Important: This tag is now deprecated. The new [podcast:image](image.md) tag should be used instead.** +*Important: This tag is now deprecated. The new [podcast:image](image.md) tag should be used instead* This tag, when present, allows for specifying many different image sizes in a compact way at either the episode or channel level. The syntax is borrowed from the HTML5 [srcset](https://html.spec.whatwg.org/multipage/images.html#srcset-attributes) syntax. It allows for describing multiple image sources with width and pixel hints directly in the attribute. Although the HTML5 `srcset` attribute allows relative urls, absolute urls are required in this tag - since the feed url may not represent an appropriate base url for relativization. From 719af20a53a9469ce354be950a6e8cd09d0ad7ca Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Thu, 3 Jul 2025 15:56:37 -0500 Subject: [PATCH 05/14] change purpose example to apple/showcase-hero --- docs/tags/image.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tags/image.md b/docs/tags/image.md index a502cc8..2825b89 100644 --- a/docs/tags/image.md +++ b/docs/tags/image.md @@ -106,7 +106,7 @@ Standard square image. Assumed to be 1/1 aspect ratio intended for either podca ### Using `purpose` to target a specific platform (ex. [Apple](https://podcasters.apple.com/support/5522-show-hero-template)) ```xml From 9b1c3fb94d576f7b4d264791f465072729c9933b Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Thu, 3 Jul 2025 16:02:00 -0500 Subject: [PATCH 06/14] deprecated the image tag --- docs/1.0.md | 4 +++- docs/tags/{images.md => images-(deprecated).md} | 0 2 files changed, 3 insertions(+), 1 deletion(-) rename docs/tags/{images.md => images-(deprecated).md} (100%) diff --git a/docs/1.0.md b/docs/1.0.md index d45e00b..6219802 100644 --- a/docs/1.0.md +++ b/docs/1.0.md @@ -41,7 +41,6 @@ explicitly specified as optional. Anywhere the url of a hyper-text based resourc - [Value](tags/value.md) - [Value Recipient](tags/value-recipient.md) - [Medium](tags/medium.md) -- [Images](tags/images.md) - [Live Item](tags/live-item.md) - [Content Link](tags/content-link.md) - [Social Interact](tags/social-interact.md) @@ -54,3 +53,6 @@ explicitly specified as optional. Anywhere the url of a hyper-text based resourc - [Value Time Split](tags/value-time-split.md) - [Chat](tags/chat.md) - [Publisher](tags/publisher.md) + +## Deprecated +- [Images](tags/images-(deprecated).md) diff --git a/docs/tags/images.md b/docs/tags/images-(deprecated).md similarity index 100% rename from docs/tags/images.md rename to docs/tags/images-(deprecated).md From 646f44c20fe3d7cca8aea4c5dda7746488f7b52a Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Thu, 3 Jul 2025 16:03:15 -0500 Subject: [PATCH 07/14] add the image tag to main doc --- docs/1.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/1.0.md b/docs/1.0.md index 6219802..b3cbd9f 100644 --- a/docs/1.0.md +++ b/docs/1.0.md @@ -53,6 +53,7 @@ explicitly specified as optional. Anywhere the url of a hyper-text based resourc - [Value Time Split](tags/value-time-split.md) - [Chat](tags/chat.md) - [Publisher](tags/publisher.md) +- [Image](tags/image.md) ## Deprecated - [Images](tags/images-(deprecated).md) From 3aed9b0c691dc8ba5cf6cd6264c451a398ca9446 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Thu, 3 Jul 2025 16:27:28 -0500 Subject: [PATCH 08/14] add demo and attribution links --- docs/tags/image.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/tags/image.md b/docs/tags/image.md index 2825b89..723f790 100644 --- a/docs/tags/image.md +++ b/docs/tags/image.md @@ -1,4 +1,5 @@ # Image +by [Nathan Gathright](https://nathangathright.com/) `` @@ -20,7 +21,7 @@ Multiple - purpose (optional): An unordered set of case-insensative, space-separated tokens following the equivalent [W3C syntax](https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#space-separated-tokens). This value should not exceed 128 characters. This allows podcasters to indicate the suggested uses of this media. ### Notes -The only required attribute is `href`, specifying the url of the asset being delivered. For accessibility, `alt` is also encouraged. +The only required attribute is `href`, specifying the url of the asset being delivered. If no further attributes are defined, such as `aspect-ratio` or `purpose`, the image is assumed to be square (1:1). For accessibility, `alt` is also encouraged. The `aspect-ratio` and `width` are also encouraged, as they give app developers important information about how they can display your image within their UI. A `height` attribute is also available, but not critical if `aspect-ratio` and `width` are provided. @@ -41,6 +42,9 @@ Anyone may define a token and its requirements. For instance, an app might defin | publisher | Recommended for publisher logos. Should be legible at small sizes. | [Apple’s Channel Icon](https://podcasters.apple.com/support/896-artwork-requirements#channels) | | circular | Recommended for times when an image is expected to be cropped to a full circle. This should be a "circle safe" image. | +### Demo Tool +In addition to the examples below, a [demo tool](https://nathangathright.github.io/podcastimage/) is provided to help get started with a few common image tag scenarios. The tool is provided by Nathan Gathright. + ## Examples ### The most basic use cases From ded4a4419d8bb92f9d35a9ef2d6d7c68c7ffb6fa Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Thu, 3 Jul 2025 16:28:33 -0500 Subject: [PATCH 09/14] style tweak --- docs/tags/image.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/tags/image.md b/docs/tags/image.md index 723f790..34fb8d9 100644 --- a/docs/tags/image.md +++ b/docs/tags/image.md @@ -1,5 +1,7 @@ # Image -by [Nathan Gathright](https://nathangathright.com/) +by [Nathan Gathright](https://nathangathright.com/) + +
`` From fc5f6cbdd9041b43e128d3f1f740394651999597 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 4 Jul 2025 10:49:17 -0500 Subject: [PATCH 10/14] move attribution to bottom --- docs/tags/image.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/tags/image.md b/docs/tags/image.md index 34fb8d9..bb7ee79 100644 --- a/docs/tags/image.md +++ b/docs/tags/image.md @@ -1,7 +1,4 @@ # Image -by [Nathan Gathright](https://nathangathright.com/) - -
`` @@ -177,4 +174,11 @@ Multiple image tags in the feed allow apps to select from multiple aspect ratios aspect-ratio="9/16" href="https://example.com/images/ep1/pci_portrait-massive.mp4" /> -``` \ No newline at end of file +``` + +### Attribution + +* [Nathan Gathright](https://nathangathright.com/) - Author +* [James Cridland](https://james.cridland.net/) - Contributor +* [Daniel J. Lewis](https://danieljlewis.com/) - Contributor +* [Dave Jones](https://davejones.blog) - Contributor \ No newline at end of file From 7f6b6c2bf597f7a9f420d1a1d268e6f43e4f6cf1 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 4 Jul 2025 11:05:17 -0500 Subject: [PATCH 11/14] remove width --- docs/tags/image.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/tags/image.md b/docs/tags/image.md index bb7ee79..8ead280 100644 --- a/docs/tags/image.md +++ b/docs/tags/image.md @@ -110,7 +110,6 @@ Standard square image. Assumed to be 1/1 aspect ratio intended for either podca ```xml ``` From 0ad5fb6eae7d8cd7d569be61b6adfcdbc938944a Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 4 Jul 2025 11:22:41 -0500 Subject: [PATCH 12/14] formalize image tag --- README.md | 10 ++++++++++ docs/tags/image.md | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 18adcaf..014a2e7 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,16 @@ located [here](docs/1.0.md). Please see that file for full implementation detai - **\**
- **\**
+
+ +## Phase 8 + +
+ +The following tags have been formally adopted into the namespace. They are fully documented in the XMLNS document +located [here](docs/1.0.md). Please see that file for full implementation details. + +- **\**

diff --git a/docs/tags/image.md b/docs/tags/image.md index 8ead280..50480b8 100644 --- a/docs/tags/image.md +++ b/docs/tags/image.md @@ -175,7 +175,7 @@ Multiple image tags in the feed allow apps to select from multiple aspect ratios /> ``` -### Attribution +### Credits * [Nathan Gathright](https://nathangathright.com/) - Author * [James Cridland](https://james.cridland.net/) - Contributor From 2e4569f870f76f889be395d9a407fe37127b3a0b Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 4 Jul 2025 11:29:14 -0500 Subject: [PATCH 13/14] credit @redimongo in image tag --- docs/tags/image.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/tags/image.md b/docs/tags/image.md index 50480b8..4df63ca 100644 --- a/docs/tags/image.md +++ b/docs/tags/image.md @@ -178,6 +178,7 @@ Multiple image tags in the feed allow apps to select from multiple aspect ratios ### Credits * [Nathan Gathright](https://nathangathright.com/) - Author +* [Russell Harrower](https://github.com/redimongo) - Contributor * [James Cridland](https://james.cridland.net/) - Contributor * [Daniel J. Lewis](https://danieljlewis.com/) - Contributor * [Dave Jones](https://davejones.blog) - Contributor \ No newline at end of file From 9a614aa5c7f25d84728d1a38fa16d43cf1db2569 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 4 Jul 2025 11:32:36 -0500 Subject: [PATCH 14/14] remove @daveajones from image tag credits --- docs/tags/image.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/tags/image.md b/docs/tags/image.md index 4df63ca..a8ecd55 100644 --- a/docs/tags/image.md +++ b/docs/tags/image.md @@ -180,5 +180,4 @@ Multiple image tags in the feed allow apps to select from multiple aspect ratios * [Nathan Gathright](https://nathangathright.com/) - Author * [Russell Harrower](https://github.com/redimongo) - Contributor * [James Cridland](https://james.cridland.net/) - Contributor -* [Daniel J. Lewis](https://danieljlewis.com/) - Contributor -* [Dave Jones](https://davejones.blog) - Contributor \ No newline at end of file +* [Daniel J. Lewis](https://danieljlewis.com/) - Contributor \ No newline at end of file