podcast-namespace/location/location.md

7.8 KiB

Location tag format details

Below, you will find implementation details and UX recommendations for the <podcast:location> tag.


Overview

This tag is intended to describe the location of editorial focus for a podcast's content - i.e. "what place is this podcast about?" It can exist at either the channel level or the item level, or both.

The use-cases for this tag are multiple, in order of complexity:

  1. To allow a free-text "location" field to be visible in a podcast app, perhaps during playback.
  2. To allow a simple point on a map to be visible in a podcast app.
  3. To allow a search for "podcasts/episodes about places near me" - or, for example, a travel or news podcast.
  4. To describe a specific place in a programmatic fashion to allow complex geo-aware searches.

It may allow complex searches such as:

  • Show me podcasts or episodes about places near me.
  • Show me podcasts about train stations in Germany.
  • Show me podcasts about mines in West Australia.
  • Visa mig podcaster om platser i Kalifornien på svenska - "Show me podcasts about places in California, returning Swedish-language podcasts only" (using the <language> tag).

Unlike other elements in the podcast namespace, a "place" is not permanent. Places are built, and abandoned, all the time. Buildings are demolished, businesses close.

On the other hand, a point on the earth is permanent, but does not describe anything other than a point. This is not always great when wanting to describe a city, rather than an area within a city, or a restaurant within a city. "Locations" are also, not always real places, especially in fiction podcasts.

This, therefore, means that the <podcast:location> tag is complex and has a number of attributes.


Structure

<podcast:location
  name="[human-readable place name]"
  geo="[geo URI]"
  osmid="[OSM type][OSM id]"
>

This tag can exist at either the <channel> level, or the <item> level, or both. The maximum recommended string length of all attribute values is 128 characters.


name required

This is meant for podcast apps to display the name of the location that the podcast is about. Examples might be "Houses of Parliament", "Gitmo Nation" or "Ernest Murrow Theater, Chicago". This is not intended to be programmatically parsed and is for display only. For a programmatic designation of the location, use the geo URI or OSM IDs, below.

This field is a maximum of 128 characters. It may describe a real or fictional place. It should be in the same language as the podcast, as indicated in the RSS tag: so a podcast in en should read "Eiffel Tower, Paris" and not "La Tour d'Eiffel".


A geo URI, conformant to RFC 5870.

Examples:

  • geo:37.786971,-122.399677, a simple latlon description.
  • geo:37.786971,-122.399677,250, a latlon including a height of 250 meters above ground level.
  • geo:37.786971,-122.399677;u=350, a latlon with an accuracy ('uncertainty') of 350 meters.

For information that may interest space travelers: the RFC does include an optional coordinate reference system for other planets, though these are not recommended to be used yet by the RFC.

The geo attribute is recommended to be used alongside an osmid attribute. Since OSM IDs are not guaranteed to be permanent (perhaps it's the ID of a building which is later demolished), the geo URI serves as a permanent point.

Data within these attributes must relate to a real place. This tag must not be used for podcasts from or about fictional places.


From an OpenStreetMap query. If a value is given for osmid it must contain both 'type' and 'id'.

  • osm type: A one-character description of the type of OSM point. Valid is "N" (node); "W" (way); "R" (relation).
  • osm id: The ID of the OpenStreetMap feature that is described.

This may describe part of a building, a building or business, a suburb, city, state, or country - anything within the OSM database, using the OpenStreetMap API or a local copy of the data. This is the field that is the best programmatic representation of the place being described. The data within OpenStreetMap is rich and can be used for detailed searches.

Examples:

  • The United States of America: R148838
  • The Eiffel Tower in Paris: W5013364

The osmid is recommended to be used alongside a geo attribute. Since OSM IDs are not guaranteed to be permanent (perhaps it's the ID of a building which is later demolished), the geo URI serves as a permanent point. Exceptions are podcasts from or about fictional places. Data within these tags must relate to a real place.

If a developer uses the osmid tag, the canonical latlon is the one returned by OSM. It is intended that the geo attribute is used for simple display within a podcast app without any API usage: but for more advanced uses, like a geographic search, developers will ingest the full details from OpenStreetMap. The geo URI also offers a useful fallback should the osmid be removed.

Caution: our definition of osmid is what OpenStreetMap calls "OSM type and OSM id". It must start with an alphabetical representation of the type, then the numerical ID. Do not use place_id, which is visible in API calls - these are unique to each mirror of the OSM data.


UX Suggestion for Podcast Hosting Platforms

The quality of this data is important to ensure a good listener experience. A podcast publisher should be in no doubt what data is being asked for here, to clarify that this is about a location that is mentioned in the podcast. The wording of this feature is important to ensure the correct data is available.

image image

Podcast hosts may also wish to remind podcast publishers to always be cautious about posting public location information. It's possible to check the OSM type to see if it relates to a residential address.


Examples

For a podcast that is talking about the Eiffel Tower, but actually made in Birmingham, Alabama, this is what the specification would suggest:

<podcast:location
  name="Eiffel Tower, Paris"
  geo="geo:48.858093,2.294694"
  osmid="W5013364"
>

For a podcast that is set in Gitmo Nation, a nickname used by the show for the United States of America:

<podcast:location
  name="Gitmo Nation"
  geo="geo:39.7837304,-100.445882;u=3900000"
  osmid="R148838"
>

The geo point uses an optional 'uncertainty' value here of 3,900 km, indicating that the "location" described here is up to 3,900km away from the point given (which is the rough width of the USA). The OSMID includes a more accurate bounding box and geoJSON.

For a podcast that is about Hogwarts (a fictional location), the geo and osmid must not be entered:

<podcast:location
  name="Hogwarts"
>

For a podcast from Tesla upon landing on Mars:

<podcast:location
  name="Tesla Base 3"
  geo="geo:37.786971,-122.399677;crs=Mars-2031"
>

(The coordinate reference system for Mars doesn't yet exist, but this shows the extensibility of this tag.)


What This Tag Isn't Built For

For privacy and user experience, this tag is not meant as a description of the physical location of podcast hosts and guests ("I'm doing this podcast in Denver, Colorado!"). The physical location of people are available via the podcast:person tag's links to places like Twitter, Facebook, Wikipedia and Podchaser.