Especificación de Schema.org para podcasts

En esta sección, se proporcionan los detalles de las propiedades de marcado de contenido para los podcasts.

Especificación de PodcastSeries

PodcastSeries es la representación de una serie de podcasts, que también se conoce como "programa" de podcasts.

Propiedad Prioridad Tipo Descripción
@context Obligatorio Texto Contexto de Schema.org Siempre se establece en [http://schema.googleapis.com,{@language}:xx}], donde xx debe estar en el código de idioma. De esta manera, se establece el idioma predeterminado que se usa para los valores de texto en la entidad.
@type Obligatorio Texto Siempre se establece en PodcastSeries.
@id Obligatorio Texto Es un ID único global de la serie de podcasts en formato URI. El ID debe ser fijo y mantener el mismo formato con el paso del tiempo. Se la considera como una cadena opaca que no necesariamente debe ser un vínculo activo. El dominio para el valor @id debe ser propiedad de tu organización.
url Obligatorio Texto Es la URL canónica de tu sitio web en la que se presenta o describe la serie de podcasts. Debe ser único a nivel global. Este vínculo permite compaginar con precisión el contenido de tu feed con las bases de datos de Google. Para la reproducción, usa el target.urlTemplate que se detalla en la sección ListenAction de la documentación.
name Obligatorio Texto

Es el nombre de la serie de podcasts. Incluye solo un nombre por idioma.

Usa un array para marcar la descripción en varios idiomas. Consulta el ejemplo de varios idiomas y regiones.

description Obligatorio Texto

Es un resumen de la serie de podcasts.

Usa un array para marcar la descripción en varios idiomas. Consulta el ejemplo de varios idiomas y regiones.

alternativeHeadline Opcional Texto Son los subtítulos de la serie de podcasts.
author Obligatorio

Persona o organización

repetido

La persona o el grupo que desarrolla o presenta el programa. A menudo, hace referencia al host. Para obtener ejemplos y detalles, consulta Organización, persona (autor o editor).
publisher Opcional

Persona o organización

repetido

Es el grupo o la cadena original responsable de publicar el programa. A menudo, se refiere a una organización responsable de publicar o producir varios podcasts. Para obtener ejemplos y detalles, consulta Organización, Persona (autor o editor). Este campo es muy recomendable para la resolución de ambigüedades y se debe proporcionar siempre que corresponda.
actor Opcional

Persona o organización

repetido

Es el actor del podcast. Para obtener ejemplos y detalles, consulta la sección Actor (host/invitado) .
logo Opcional

ImageObject

repetido

Una imagen del logotipo de la serie. Proporciona esto como un ImageObject completamente descrito. Proporciona la resolución más alta disponible. Se prefiere JPEG o PNG. Para obtener detalles y ejemplos, consulta la sección ImageObject (logo).
image Obligatorio

ImageObject

repetido

Es una imagen del material gráfico de la serie. Proporciona esto como una ImageObject completamente descrita. Proporciona la resolución más alta disponible. Se prefiere JPEG o PNG. Consulta la sección ImageObject (logo) para obtener detalles y ejemplos.
isFamilyFriendly Obligatorio Booleano Indica si el contenido es apto para familias (es decir, si es adecuado para todos los miembros de una familia, incluidos los niños). Es posible que los productos de Google usen isFamilyFriendly para ayudar a determinar qué contenido reproducir. El valor debe ser true o false.
inLanguage Obligatorio Texto Es el idioma del contenido del podcast en formato ISO 639-1. Este valor se puede usar para entregar las consultas de los usuarios que solicitan contenido en un idioma específico.
genre Obligatorio

Texto

repetido

Es la categoría o el género de la serie de podcasts. Por ejemplo, puedes seguir las categorías de podcasts estándar.
endDate Opcional Fecha Es la fecha de lanzamiento del episodio final de la serie de podcasts. Incluye este campo solo cuando la serie ya haya terminado.
rssFeed Obligatorio URL Es la URL del feed RSS de la serie de podcasts.
potentialAction Obligatorio ListenAction Es la acción que se activará para que los usuarios escuchen el contenido. Para obtener más información, consulta ListenAction.
popularityScore Opcional PopularityScoreSpecification Una puntuación de popularidad para ayudar a determinar la prioridad de publicación cuando hay varios candidatos Consulta la sección PopularityScoreSpecification (popularityScore) para obtener detalles y ejemplos.
keywords Opcional

Texto

repetido

Es una lista de palabras clave que se asociarían con la serie de podcasts. Estas palabras clave se pueden usar para expandir las búsquedas de los usuarios que pueden activar esta serie de podcasts. Por ejemplo, nombres de invitados, temas tratados, etcétera.
sameAs Opcional URL Es la URL de una página web de referencia de terceros (no dentro de tu dominio) que indica inequívocamente la identidad del elemento. Esta página web se usa para la resolución de ambigüedades cuando existen varias series similares. Por ejemplo, una página de Wikipedia o la página principal de la serie de podcasts. Este campo es muy recomendable para desambiguar la serie.
releasedEvent Opcional PublicationEvent o subtipos más específicos: FeaturedEvent o ExclusiveEvent Es el evento que marca la publicación o el lanzamiento de la serie de podcasts. Un evento de publicación puede indicar el lanzamiento inicial de un podcast por parte de un publicador, y los tipos más especializados se pueden usar para indicar la exclusividad o la inclusión en la publicación. Para obtener detalles y ejemplos, consulta la sección PublicationEvent, FeaturedEvent, ExclusiveEvent (releasedEvent). Ten en cuenta que marcar una serie como exclusiva o destacada implica que todos los episodios del programa son exclusivos o destacados.
countryOfOrigin Opcional País Es el país de las oficinas principales de la productora o de la persona responsable del podcast.

Especificación de PodcastEpisode

PodcastEpisode es la representación de schema.org de un episodio dentro de un PodcastSeries.

Propiedad Prioridad Tipo Descripción
@context Obligatorio Texto Contexto de Schema.org Siempre se establece en [http://schema.googleapis.com,{@language:xx}], donde xx es el código de idioma. Esto establece el idioma de caracteres predeterminado que se usa para los valores de texto en el feed.
@type Obligatorio Texto Siempre se establece en PodcastEpisode.
@id Obligatorio Texto Corresponde al ID único global del episodio de podcast en formato URI. El ID debe ser fijo y mantener el mismo formato con el paso del tiempo. Se la considera como una cadena opaca que no necesariamente debe ser un vínculo activo. Tu organización debe ser propietaria del dominio que se usa para el valor @id.
url Obligatorio Texto Es la URL canónica de tu sitio web en la que presentas o describes el episodio del podcast. Este valor debe ser único a nivel global. Este vínculo se usa para compaginar con precisión el contenido de tu feed con las bases de datos de Google. Para la reproducción, se usa el target.urlTemplate detallado en la sección ListenAction de la documentación.
name Obligatorio Texto

Es el nombre del episodio del podcast.

Solo debe haber un nombre por idioma. Usa un array para marcar la descripción en varios idiomas. Consulta el ejemplo de varios idiomas y regiones.

description Obligatorio Texto Es la descripción del episodio del podcast.
alternativeHeadline Obligatorio Texto Es el subtítulo del episodio del podcast.
author Obligatorio

Persona o organización

repetido

La persona o el grupo que desarrolla o publica el episodio. Este valor suele referirse al host. Si el autor es el mismo que el programa, puedes reutilizar la información de la entidad PodcastSeries. Para obtener ejemplos y detalles, consulta Organización, persona (autor o editor).
publisher Obligatorio

Persona o organización

repetido

Es el grupo o la cadena original responsable de publicar el programa. A menudo, se refiere a una organización responsable de publicar o producir varios podcasts. Consulta Organización, persona (autor o editor) para ver ejemplos y detalles. Este campo es muy recomendable para la resolución de ambigüedades y te recomendamos que lo definas siempre que corresponda.
actor Obligatorio

Persona o organización

repetido

Es el actor del podcast. Para obtener ejemplos y detalles, consulta la sección Actor (host/invitado).
datePublished Obligatorio Fecha y hora Es la fecha y hora del lanzamiento del episodio del podcast. Este valor se usa para ordenar la secuencia de episodios y la resolución de ambigüedades.
episodeNumber Obligatorio Número entero Es el número de episodio.
partOfSeries Obligatorio PodcastSeries Es el PodcastSeries en el que se encuentra este episodio de podcast. Consulta PodcastSeries(partOfSeries) para obtener detalles y ejemplos.
partOfSeason Opcional PodcastSeason En el caso de las series de varias temporadas, esta propiedad proporciona la información de la temporada junto con el número y el nombre de la temporada. Consulta PodcastSeason(partOfSeason) para obtener detalles y ejemplos.
timeRequired Obligatorio Duración Es la duración del episodio en formato de duración ISO 8601.
image Opcional

ImageObject

repetido

Es una imagen del material gráfico de la serie. Debe ser un ImageObject completamente descrito. Proporciona la resolución más alta disponible. Se prefiere JPEG o PNG. Consulta la sección ImageObject (logotipo) para obtener detalles y ejemplos.
isFamilyFriendly Obligatorio Booleano Indica si el contenido es apto para familias (es decir, si es adecuado para todos los miembros de una familia, incluidos los niños). Es posible que los productos de Google usen isFamilyFriendly para determinar el contenido que se reproducirá. El valor debe ser true o false.
inLanguage Obligatorio Texto Es el idioma del contenido del episodio del podcast en formato ISO 639-1. Usa este valor para entregar las consultas de los usuarios que solicitan contenido en un idioma específico. Si el contenido está en varios idiomas, indica solo un idioma principal.
genre Obligatorio

Texto

repetido

Es la categoría o el género de la serie de podcasts. Por ejemplo, puedes seguir las categorías de podcasts estándar.
associatedMedia Opcional AudioObject Es el archivo de audio del episodio del podcast. Para obtener más detalles y ejemplos, consulta AudioObject(associatedMedia).
potentialAction Obligatorio ListenAction Es la acción que se activará para que los usuarios escuchen el contenido. Para obtener más detalles, consulta la sección ListenAction.
popularityScore Opcional PopularityScoreSpecification Una puntuación de popularidad para determinar la prioridad de publicación cuando hay varios candidatos Para obtener más detalles y ejemplos, consulta la sección PopularityScoreSpecification.
keywords Opcional

Texto

repetido

Es una lista de palabras clave asociadas con la serie de podcasts. Estas palabras clave se podrían usar para expandir las búsquedas de los usuarios que pueden activar este episodio de podcast. Por ejemplo, news, sports o history.
identifier Obligatorio

PropertyValue

repetido

Para PodcastEpisode, usa esta propiedad para proporcionar un GUID. El GUID debe ser un ID que pueda identificar de forma global y única los episodios de un podcast. Es diferente del campo @id del episodio.

Consulta la sección PropertyValue (identificador) para ver un ejemplo.

sameAs Opcional URL Es la URL de una página web de referencia de terceros (no dentro de tu dominio) que indica inequívocamente la identidad del elemento. Google usa esta página web para la resolución de ambigüedades cuando existen varias series similares. Por ejemplo, una página de Wikipedia o la página principal de los episodios del podcast. Ten en cuenta que no se debe proporcionar la página de referencia a nivel de la serie aquí. Te recomendamos que uses este campo para la resolución de ambigüedades del episodio.
releasedEvent Opcional PublicationEvent o subtipos más específicos: FeaturedEvent o ExclusiveEvent Es el evento que marca la publicación o el lanzamiento del episodio del podcast. Un evento de publicación puede indicar el lanzamiento inicial de un episodio de podcast por parte de un publicador, y los subtipos más específicos pueden indicar la exclusividad o la inclusión en la publicación. Para obtener detalles y ejemplos, consulta la sección PublicationEvent, FeaturedEvent, ExclusiveEvent (releasedEvent). Ten en cuenta que marcar una serie como exclusiva o destacada implica que todos los episodios del programa son exclusivos o destacados. Te recomendamos que marques esas propiedades en el nivel más detallado.
countryOfOrigin Opcional País Es el país de las oficinas principales de la productora o la persona responsable del podcast.

PodcastSeries (partOfSeries)

Usa partOfSeries para establecer la relación entre un PodcastEpisode y su PodcastSeries superior. Debido a que los detalles completos de PodcastSeries se describen en la entidad PodcastSeries independiente, no es necesario que proporciones detalles completos en partOfSeries. Solo debes proporcionar las siguientes propiedades:

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en PodcastSeries.
@id Obligatorio URL Es el ID único global de la serie en formato URI. El ID debe coincidir con el ID de la entidad PodcastSeries completa de tu feed.
name Obligatorio Texto Es el nombre de la serie de podcasts.

Ejemplo 1

"partOfSeries": {
  "@type": "PodcastSeries",
  "@id": "http://www.tjpodcast.org/series?id=1",
  "name": "Radiolab"
},

PodcastSeason (partOfSeason)

PodcastSeason representa la información de la temporada de un PodcastEpisode, en especial, el número de la temporada. Solo necesitas esta propiedad cuando la serie de podcasts tiene varias temporadas.

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en PodcastSeason.
@id Obligatorio URL Es un ID único global de la temporada en formato URI. El ID debe ser fijo y mantener el mismo formato con el paso del tiempo. Se la considera como una cadena opaca que no necesariamente debe ser un vínculo activo.
seasonNumber Obligatorio Número entero Es el número de la temporada de la serie de podcasts.
name Opcional Texto Es el nombre de la temporada del podcast.

Ejemplo 1

"partOfSeason": {
  "@type": "PodcastSeason",
  "@id": "http://www.tjpodcast.org/seriesx/season?id=1",
  "seasonNumber": 1,
  "name": "Radiolab Season 1"
},

Organization, Person (author or publisher)

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en Organization o Person.
@id Obligatorio URL Es un ID único global de la organización o la persona en formato de URI. El ID debe ser fijo y mantener el mismo formato con el paso del tiempo. Se la considera como una cadena opaca que no necesariamente debe ser un vínculo activo.
name Obligatorio Texto Es el nombre de la organización o persona.
sameAs Opcional URL Es la URL de una página web de referencia de terceros (no dentro de tu dominio) que indica inequívocamente la identidad del elemento. Google usa esta página web para la resolución de ambigüedades cuando existen varias series similares. Los ejemplos pueden incluir una página de Wikipedia de una organización o el sitio web oficial de la organización.

Ejemplo 1

"author": {
  "@type": "Organization",
  "@id": "https://www.tjpodcast.org/organization/wnyc",
  "sameAs": "https://en.wikipedia.org/wiki/WNYC",
  "name": "WNYC"
},

Ejemplo 2

"author": {
  "@type": "Person",
  "@id": "https://www.tjpodcast.org/person/jad_abumrad",
  "sameAs": "https://en.wikipedia.org/wiki/Jad_Abumrad",
  "name": "Jad Abumrad"
},

Actor (anfitrión o invitado)

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en Organization o Person.
@id Obligatorio URL Es un ID único global de la organización o la persona en formato de URI. El ID debe ser fijo y mantener el mismo formato con el paso del tiempo. Se la considera como una cadena opaca que no necesariamente debe ser un vínculo activo.
name Obligatorio Texto Es el nombre de la organización o persona.
roleName Obligatorio Texto "Host" o "Guest".
sameAs Opcional URL Es la URL de una página web de referencia de terceros (no dentro de tu dominio) que indica inequívocamente la identidad del elemento. Google usa esta página web para la resolución de ambigüedades cuando existen varias series similares. Los ejemplos pueden incluir una página de Wikipedia de una organización o el sitio web oficial de la organización.

Ejemplo 1

"actor":[{
  "@type": "PerformanceRole",
  "actor": {
    "@type": "Person",
    "@id": "https://www.tjpodcast.org/person/Roman",
    "name": {
      "@language":"en",
      "@value": "Roman Mars"
    },
    "roleName": "Host"
    "sameAs": "https://en.wikipedia.org/wiki/Roman",
  },
  "actor": {
    "@type": "Person",
    "@id": "https://www.tjpodcast.org/person/guest",
    "name":{
      "@language":"en",
      "@value": "Kurt Kohlstedt"
    },
    "roleName": "Guest"
   },
}]

ImageObject (logotipo o imagen)

El ImageObject se usa para proporcionar el logotipo o el material gráfico del contenido.

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en ImageObject.
height Opcional Número entero Es la altura de la imagen en píxeles.
width Opcional Número entero Es el ancho de la imagen en píxeles.
contentUrl Obligatorio URL Es una URL en la que se puede ubicar la imagen.
regionsAllowed Opcional

País

repetido

Los países en los que se permite el contenido multimedia:

  • Si no se especifica, se supone que la imagen está permitida en todas las configuraciones regionales.
  • Para enviar imágenes diferentes por región, agrega varias propiedades ImageObject, cada una con su propio conjunto de países y una URL de imagen correspondiente.

País (image.regionsAllowed)

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en Country..
name Obligatorio Texto Es el código de país ISO 3166-1 alpha-2. Por ejemplo, GB, US.

Ejemplo 1

"logo": {
  "@type": "ImageObject",
  "height": "100",
  "width": "800",
  "contentUrl": "http://www.foo.com/img/67890.jpg",
},

Ejemplo 2

"logo": [
  {
    "@type": "ImageObject",
    "height": "100",
    "width": "800",
    "contentUrl": "http://www.foo.com/img/67890.jpg",
    "regionsAllowed": [
      {
        "@type": "Country",
        "name": "US"
      },
      {
        "@type": "Country",
        "name": "GB"
      }
    ]
  },
  {
    "@type": "ImageObject",
    "height": "100",
    "width": "800",
    "contentUrl": "http://www.foo.com/img/12345.jpg",
    "regionsAllowed": [
      {
        "@type": "Country",
        "name": "IN"
      },
      {
        "@type": "Country",
        "name": "PK"
      }
    ]
  },
],

PropertyValue (identificador)

Si tienes GUID para tu contenido, puedes proporcionar estos IDs con el campo identifier para mejorar la precisión de la conciliación de tu contenido por parte de Google. Ten en cuenta que el GUID es obligatorio para PodcastEpisode. Debe ser diferente del campo @id del episodio (no dentro de tu dominio) y debe representar el episodio de origen de forma global y única a lo largo del tiempo y en todas las fuentes.

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en "PropertyValue".
propertyID Obligatorio Texto Siempre se establece en GUID.
value Obligatorio Texto Es el GUID de la serie o el episodio.

Ejemplo 1

"identifier": {
  "@type": "PropertyValue",
  "propertyID": "GUID",
  "value": "50204fe4-bc68-4b34-aae6-e73c700cc5ca"
},

PopularityScoreSpecification (popularityScore)

popularityScore puede ayudar a los usuarios a acceder al contenido más apropiado en situaciones en las que los criterios de la consulta del usuario coinciden con varias entidades de tu feed. El contenido con la puntuación de popularidad más alta disponible para la región del usuario se le entrega cuando este valor está disponible. Todo el contenido sin este campo tiene la puntuación de popularidad 0 de forma predeterminada. La comparación de puntuaciones se realiza en el alcance de tu catálogo completo, por lo que asegúrate de que la escala sea coherente en todos tus feeds.

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en PopularityScoreSpecification.
value Obligatorio Numérico Es un valor numérico positivo que se compara con otras entidades de tu catálogo para determinar la prioridad de publicación. Un número más alto representa una mayor popularidad.
eligibleRegion Opcional

País o texto

repetido

Una región o una lista de las regiones a las que se aplica esta puntuación de popularidad.

Si la puntuación de popularidad se aplica de forma global, usa earth como valor de texto.

Si se deben enumerar regiones específicas, usa el tipo "País".

Si no incluyes este campo, el valor predeterminado de eligibleRegion será earth.

País (popularityScore.eligibleRegion)

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en Country.
name Obligatorio Texto Es el código de país ISO 3166-1 alpha-2. Por ejemplo, GB, US.

Ejemplo 1

"popularityScore": {
  "@type": "PopularityScoreSpecification",
  "value": 4.3,
  "eligibleRegion": "Earth"
},

Ejemplo 2

"popularityScore": {
  "@type": "PopularityScoreSpecification",
  "value": 2,
  "eligibleRegion": {
    "@type": "Country",
    "name": "US"
  }
},

Ejemplo 3

"popularityScore": {
  "@type": "PopularityScoreSpecification",
  "value": 101,
  "eligibleRegion": [
    {
      "@type": "Country",
      "name": "US"
    },
    {
      "@type": "Country",
      "name": "GB"
    }
  ]
},

PublicationEvent, FeaturedEvent, ExclusiveEvent (releasedEvent)

PublicationEvent
Usa este objeto para representar la fecha y la ubicación de publicación de un programa o episodio (también conocida como "fecha de lanzamiento" de una serie o episodio). Además, el campo publishedBy indica la entidad de publicación o distribución de la serie o el episodio de podcast.
ExclusiveEvent
Usa este objeto para indicar que el proveedor tiene derechos de distribución exclusivos para el podcast. La exclusividad puede ser específica de la región y limitada en el tiempo, y debe incluir el campo de organización que apunta al proveedor exclusivo del contenido.
FeaturedEvent
Usa este objeto para representar que el proveedor muestra el podcast a los consumidores (por ejemplo, como un "original").
Originales es diferente de Exclusivo
El término "originales (en contenido destacado)" suele denotar derechos exclusivos para una entidad determinada, lo que sobrecarga el término. Por lo tanto, el significado previsto debe dividirse en las dos categorías anteriores. Es posible que una entidad original también sea exclusiva y, en este caso, releasedEvent puede tomar un array con ambos tipos de eventos en la misma entidad.

Ten en cuenta que, si bien la exclusividad o la inclusión en la sección de contenido destacado pueden tener significados similares dentro del catálogo de un proveedor, PublicationEvent se aplica de manera más general para permitir la dilucidación de entidades y proporcionar metadatos adicionales sobre ellas, como la fecha de lanzamiento de una serie o un episodio.

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en PublicationEvent, ExclusiveEvent o FeaturedEvent.
location Obligatorio País Es la región en la que se produce el evento de publicación. También puedes usarlo para representar las restricciones de exclusividad y distribución de la entidad. Utiliza los códigos ISO 3166 para el país. Si necesitas aplicar semántica global, configúralo como EARTH. Establece location de forma explícita en EARTH, en caso de que no se apliquen las restricciones específicas de la configuración regional.
startDate Recomendado (obligatorio para ExclusiveEvent) Fecha o DateTime Es la fecha de inicio de la publicación de las entidades. En el caso de PublicationEvent, indica la fecha de lanzamiento inicial de esta entidad. En el caso de ExclusiveEvent o FeaturedEvent, representa la fecha de inicio de la exclusividad o la función destacada de la entidad.
endDate Recomendado (obligatorio para ExclusiveEvent) Fecha o DateTime Es la fecha de finalización de la publicación de las entidades. En el caso de PublicationEvent, indica la fecha de publicación final de esta entidad. En el caso de ExclusiveEvent o FeaturedEvent, representa la fecha de finalización de la exclusividad o la función destacada de la entidad.
publishedBy Obligatorio Organización o persona La entidad Organization o Person que publica esta entidad y se aplica a este evento de publicación. Usa el mismo esquema que se describe en la sección Organización (autor/editor).

Ejemplo 1

"releasedEvent": [ {
  "@type": "PublicationEvent",
  "location": "EARTH",
  "startDate": "2016-04-21T20:00",
  "publishedBy": {
    "@type": "Organization",
    "@id": "https://www.tjpodcast.org/organization/wnyc",
    "sameAs": "https://en.wikipedia.org/wiki/WNYC",
    "name": "WNYC"
  },
 }, {
  "@type": "FeaturedEvent",
  "location": "US",
  "startDate": "2020-04-18T20:00",
  "endDate": "2020-04-21T20:00",
  "publishedBy": {
    "@type": "Organization",
    "@id": "https://www.tjpodcast.org/organization/tjpodcast",
    "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
    "name": "TJPodcast",
  },
 },
]

Ejemplo 2

"releasedEvent": [ {
  "@type": "FeaturedEvent",
  "location": "US",
  "startDate": "2020-04-18T20:00",
  "endDate": "2020-05-21T20:00",
  "publishedBy": {
    "@type": "Organization",
    "@id": "https://www.tjpodcast.org/organization/tjpodcast",
    "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
    "name": "TJPodcast",
  },
 }, {
  "@type": "ExclusiveEvent",
  "location": "US",
  "startDate": "2020-04-18T20:00",
  "endDate": "2020-04-24T20:00",
  "publishedBy": {
    "@type": "Organization",
    "@id": "https://www.tjpodcast.org/organization/tjpodcast",
    "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
    "name": "TJPodcast",
  },
 }, {
  "@type": "ExclusiveEvent",
  "location": "CA",
  "startDate": "2020-04-21T20:00",
  "endDate": "2020-04-24T20:00",
  "publishedBy": {
    "@type": "Organization",
    "@id": "https://www.tjpodcast.org/organization/tjpodcast",
    "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
    "name": "TJPodcast",
  },
 }
]

AudioObject (associatedMedia)

AudioObject se usa para proporcionar el archivo multimedia sin procesar del episodio del podcast.

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en AudioObject.
contentUrl Obligatorio URL Es la URL del archivo multimedia.
contentSize Obligatorio Número entero Es el tamaño del archivo multimedia en bytes.
encodingFormat Obligatorio Texto Los tipos de medios de IANA del archivo multimedia Por ejemplo audio/mpeg.
duration Obligatorio Duración Es la duración del contenido multimedia en formato de duración ISO 8601.
transcript Opcional Texto Transcripción del episodio.
bitrate Opcional Texto Es la tasa de bits del archivo multimedia.
name Opcional Texto Es el nombre del archivo multimedia.

Ejemplo 1

"associatedMedia": {
    "@type": "AudioObject",
    "contentUrl": "https://www.tjpodcast.org/media_files/mp3/radiolab_podcast19.mp3",
    "duration": "PT5M32S",
    "contentSize": "53616000",
    "encodingFormat": "audio/mpeg",
    "name": "radiolab_podcast19.mp3",
    "transcript": "Transcript of the episode",
    "bitrate": "64Kbps"
},

ListenAction (potentialAction)

La entidad ListenAction define tus vínculos directos para la reproducción y los criterios para que los usuarios (por ejemplo, geo, chronal, acceso o estado de suscripción) accedan al contenido.

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en ListenAction.
target Obligatorio

EntryPoint

repetido

Corresponde a las especificaciones del vínculo directo con la información de la plataforma compatible. Puedes usar varios campos EntryPoint para definir vínculos directos diferentes para distintos conjuntos de plataformas.
actionAccessibilityRequirement Obligatorio

ActionAccessSpecification

repetido

Son los requisitos del usuario que se definen para acceder a esta entidad. Si hay varios ActionAccessSpecification, un usuario que coincida con cualquier criterio de especificación puede acceder al contenido.

EntryPoint (potentialAction.target)

table class="fixed"> Propiedad Prioridad Type Descripción @type Obligatorio Texto Siempre se establece en EntryPoint. urlTemplate Obligatorio URL Es el vínculo que se usa para iniciar la reproducción de tu contenido. actionPlatform Obligatorio

Texto

repetido

Corresponde a la plataforma en la que es válido el vínculo directo. Los siguientes valores son posibles:

  • "http://schema.org/DesktopWebPlatform"
  • "http://schema.org/MobileWebPlatform"
  • "http://schema.org/AndroidPlatform"
  • "http://schema.org/AndroidTVPlatform"
  • "http://schema.org/IOSPlatform"
  • "http://schema.googleapis.com/GoogleAudioCast"
  • "http://schema.googleapis.com/GoogleVideoCast"

ActionAccessSpecification (potentialAction.actionAccessibilityRequirement)

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en ActionAccessSpecification.
category Obligatorio Texto

Es el tipo de requisito de acceso. Debe ser uno de los siguientes valores:

  • nologinrequired: La acción está disponible para el usuario sin necesidad de comprar ni ingresar a fin de acceder al contenido.
  • free: La acción está disponible para el usuario sin necesidad de comprar ni tener una suscripción pagada. La acción requiere que el usuario acceda a su cuenta.
  • subscription: La acción se incluye con una suscripción paga a tu servicio.
availabilityStarts Opcional Fecha y hora Indica la hora de inicio del período de disponibilidad. Puedes usar esta función para controlar el momento exacto en que se puede mostrar este contenido a los usuarios.
availabilityEnds Opcional Fecha y hora Indica la hora de finalización del período de disponibilidad. Puedes usar esta función para controlar el momento exacto en que este contenido deja de exponerse a los usuarios.
eligibleRegion Obligatorio

País

repetido

Es el país apto para esta oferta. Puedes usarlo para controlar el país o la región donde debe estar disponible este contenido.
requiresSubscription Obligatorio si corresponde MediaSubscription El paquete de suscripción necesario para acceder a este contenido Si tu servicio ofrece varios paquetes de suscripción, este campo es obligatorio. Si tu servicio es gratuito o solo hay un nivel de suscripción, puedes omitir este campo.

País (potentialAction.actionAccessibilityRequirement.eligibleRegion)

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en Country.
name Obligatorio Texto Es el código de país ISO 3166-1 alpha 2.

MediaSubscription (potentialAction.actionAccessibilityRequirement.requiresSubscription)

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en MediaSubscription.
@id Obligatorio URL Es un ID único global del paquete de suscripción en formato URI. El ID debe ser fijo y mantener el mismo formato con el paso del tiempo. Se la considera como una cadena opaca que no necesariamente debe ser un vínculo activo.
name Obligatorio Texto Es el nombre del paquete de suscripción. Por ejemplo, Premium, Basic.
expectsAcceptanceOf Recomendado Oferta Es la oferta asociada con la compra de la suscripción a contenido multimedia. Puedes usar esto para expresar el precio de la suscripción.

Oferta (potentialAction.actionAccessibilityRequirement.requiresSubscription.expectsAcceptanceOf)

Propiedad Prioridad Tipo Descripción
@type Obligatorio Texto Siempre se establece en Offer.
price Obligatorio Número El precio de la suscripción.
priceCurrency Obligatorio Texto Es la moneda (en formato ISO 4217 de tres letras) del precio.
seller Recomendado Organización Es la organización que ofrece la suscripción o compra de la acción. Usa el mismo esquema que se describe en la sección Organization (author/Publisher).

Ejemplo 1

"potentialAction": {
    "@type": "ListenAction",
    "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://www.tjpodcast.org/?streamStationId=170",
        "actionPlatform": [
            "http://schema.org/DesktopWebPlatform",
            "http://schema.org/MobileWebPlatform",
            "http://schema.org/AndroidPlatform",
            "http://schema.org/AndroidTVPlatform",
            "http://schema.org/IOSPlatform",
            "http://schema.googleapis.com/GoogleAudioCast",
            "http://schema.googleapis.com/GoogleVideoCast"
        ]
    },
    "actionAccessibilityRequirement": {
        "@type": "ActionAccessSpecification",
        "category": "nologinrequired",
        "availabilityStarts": "2018-04-01T11:01:00-04:00",
        "availabilityEnds": "2018-06-30T23:59:00-04:00",
        "eligibleRegion": {
            "@type": "Country",
            "name": "US"
        }
    }
},

Ejemplo 2

"potentialAction": {
    "@type": "ListenAction",
    "target": [
        {
            "@type": "EntryPoint",
            "urlTemplate": "https://www.tjpodcast.org/?streamStationId=170",
            "actionPlatform": [
                "http://schema.org/DesktopWebPlatform",
                "http://schema.org/MobileWebPlatform",
                "http://schema.org/AndroidPlatform",
                "http://schema.org/AndroidTVPlatform",
                "http://schema.org/IOSPlatform"
            ]
        },
        {
            "@type": "EntryPoint",
            "urlTemplate": "https://www.tjpodcast.org/castlink?streamStationId=170",
            "actionPlatform": [
                "http://schema.googleapis.com/GoogleAudioCast",
                "http://schema.googleapis.com/GoogleVideoCast"
            ]
        }
    ],
    "actionAccessibilityRequirement": [
        {
            "@type": "ActionAccessSpecification",
            "category": "nologinrequired",
            "availabilityStarts": "2018-04-01T11:01:00-04:00",
            "availabilityEnds": "2018-06-30T23:59:00-04:00",
            "eligibleRegion": [
                {
                    "@type": "Country",
                    "name": "IN"
                },
                {
                    "@type": "Country",
                    "name": "GB"
                }
            ]
        },
        {
            "@type": "ActionAccessSpecification",
            "category": "Subscription",
            "requiresSubscription": {
                "@type": "MediaSubscription",
                "@id": "http://www.example.com/packages/basic-pack",
                "name": "Basic Pack",
                "expectsAcceptanceOf": {
                    "@type": "Offer",
                    "price": 8.99,
                    "priceCurrency": "USD"
                }
            },
            "availabilityStarts": "2018-04-01T11:01:00-04:00",
            "availabilityEnds": "2018-06-30T23:59:00-04:00",
            "eligibleRegion": {
                "@type": "Country",
                "name": "US"
            }
        }
    ]
},

Apéndice

Ejemplo completo

{
    "@context": "http://schema.org",
    "@type": "DataFeed",
    "dateModified": "2018-09-10T13:58:26.892Z",
    "dataFeedElement": [
        {
            "@context": [
                "http://schema.googleapis.com",
                {
                    "@language": "en"
                }
            ],
            "@type": "PodcastSeries",
            "@id": "http://www.tjpodcast.org/series?id=2",
            "url": "http://www.tjpodcast.org/series?id=2",
            "name": "Radiolab",
            "description": "A two-time Peabody Award-winner...",
            "alternativeHeadline": "Radiolab - Powered by WNYC",
            "sameAs": "https://en.wikipedia.org/wiki/Radiolab",
            "image": {
                "@type": "ImageObject",
                "height": "100",
                "width": "800",
                "contentUrl": "http://www.tjpodcast.org/img/2.jpg"
            },
            "logo": {
                "@type": "ImageObject",
                "height": "100",
                "width": "800",
                "contentUrl": "http://www.tjpodcast.org/logo/2/1.jpg"
            },
            "keywords": [
                "Science",
                "Technology",
                "Philosophy",
                "Education"
            ],
            "author": [
                {
                    "@type": "Person",
                    "@id": "https://www.tjpodcast.org/author/jad_abumrad",
                    "name": "Jad Abumrad",
                    "sameAs": "https://en.wikipedia.org/wiki/Jad_Abumrad"
                },
                {
                    "@type": "Person",
                    "@id": "https://www.tjpodcast.org/author/robert_krulwich",
                    "name": "Robert Krulwich",
                    "sameAs": "https://en.wikipedia.org/wiki/Robert_Krulwich"
                }
            ],
            "publisher": {
                "@type": "Organization",
                "name": "WNYC",
                "@id": "https://www.tjpodcast.org/network/wnyc_studios",
                "sameAs": "https://en.wikipedia.org/wiki/WNYC_Studios"
            },
            "isFamilyFriendly": "True",
            "inLanguage": "en",
            "genre": [
                "Science & Medicine",
                "Natural Sciences"
            ],
            "endDate": "2017-12-22T08:59:00",
            "rssFeed": "http://feeds.wnyc.org/radiolab",
            "potentialAction": {
                "@type": "ListenAction",
                "target": {
                    "@type": "EntryPoint",
                    "urlTemplate": "https://www.tjpodcast.org/?streamSeriesId=2",
                    "actionPlatform": [
                        "http://schema.org/DesktopWebPlatform",
                        "http://schema.org/MobileWebPlatform",
                        "http://schema.googleapis.com/GoogleAudioCast",
                        "http://schema.googleapis.com/GoogleVideoCast"
                    ]
                },
                "actionAccessibilityRequirement": {
                    "@type": "ActionAccessSpecification",
                    "category": "nologinrequired",
                    "availabilityStarts": "2018-04-01T11:01:00-04:00",
                    "availabilityEnds": "2019-12-30T23:59:00-04:00",
                    "eligibleRegion": {
                        "@type": "Country",
                        "name": "FR"
                    }
                }
            },
            "popularityScore": {
                "@type": "PopularityScoreSpecification",
                "value": 4.2
            }
        },
        {
            "@context": [
                "http://schema.googleapis.com",
                {
                    "@language": "en"
                }
            ],
            "@type": "PodcastEpisode",
            "@id": "http://www.tjpodcast.org/episode?id=1",
            "url": "http://www.tjpodcast.org/episode?id=1",
            "name": "A Clockwork Miracle",
            "description": "As legend goes, in 1562, King Philip II...",
            "sameAs": "https://www.wnycstudios.org/story/radiolab-clockwork-miracle",
            "image": {
                "@type": "ImageObject",
                "height": "100",
                "width": "800",
                "contentUrl": "http://www.tjpodcast.org/img/2/1.jpg"
            },
            "keywords": [
                "Education",
                "Philosophy",
                "Science",
            ],
            "partOfSeries": {
                "@type": "PodcastSeries",
                "@id": "http://www.tjpodcast.org/series?id=2",
                "name": "Radiolab",
                "sameAs": "https://en.wikipedia.org/wiki/Radiolab",
            },
            "episodeNumber": 101,
            "inLanguage": "en",
            "author": [
                {
                    "@type": "Person",
                    "@id": "https://www.tjpodcast.org/author/jad_abumrad",
                    "name": "Jad Abumrad",
                    "sameAs": "https://en.wikipedia.org/wiki/Jad_Abumrad"
                },
                {
                    "@type": "Person",
                    "@id": "https://www.tjpodcast.org/author/robert_krulwich",
                    "name": "Robert Krulwich",
                    "sameAs": "https://en.wikipedia.org/wiki/Robert_Krulwich"
                }
            ],
            "publisher": {
                "@type": "Organization",
                "name": "WNYC",
                "@id": "https://www.tjpodcast.org/network/wnyc_studios",
                "sameAs": "https://en.wikipedia.org/wiki/WNYC_Studios"
            },
            "isFamilyFriendly": "True",
            "genre": [
                "Science",
                "Philosophy",
                "Fiction"
            ],
            "datePublished": "2018-12-27T23:23:00Z",
            "timeRequired": "PT22M",
            "associatedMedia": {
                "@type": "AudioObject",
                "contentUrl": "https://www.tjpodcast.org/media_files/mp3/radiolab_podcast19.mp3",
                "duration": "PT21M45S",
                "contentSize": "53616000",
                "encodingFormat": "audio/mpeg",
                "transcript": "Transcript of the episode",
                "bitrate": "64Kbps"
            },
            "potentialAction": {
                "@type": "ListenAction",
                "target": {
                    "@type": "EntryPoint",
                    "urlTemplate": "https://www.tjpodcast.org/?streamEpisodeId=1",
                    "actionPlatform": [
                        "http://schema.org/DesktopWebPlatform",
                        "http://schema.org/MobileWebPlatform",
                        "http://schema.googleapis.com/GoogleAudioCast",
                        "http://schema.googleapis.com/GoogleVideoCast"
                    ]
                },
                "actionAccessibilityRequirement": {
                    "@type": "ActionAccessSpecification",
                    "category": "nologinrequired",
                    "availabilityStarts": "2018-04-01T11:01:00-04:00",
                    "availabilityEnds": "2019-12-30T23:59:00-04:00",
                    "eligibleRegion": {
                        "@type": "Country",
                        "name": "FR"
                    }
                }
            },
            "popularityScore": {
                "@type": "PopularityScoreSpecification",
                "value": 3.8
            },
            "identifier": [
                {
                    "@type": "PropertyValue",
                    "propertyID": "GUID",
                    "value": "53ff386e-e768-40b5-8854-1b7415826ded"
                }
            ]
        }
    ],
    "actor": [
        {
            "@type": "PerformanceRole",
            "actor": {
                "@type": "Person",
                "@id": "https://www.tjpodcast.org/person/Roman",
                "name": {
                    "@language": "en",
                    "@value": "Roman Mars"
                },
                "roleName": "Host",
                "sameAs": "https://en.wikipedia.org/wiki/Roman"
            },
            "actor": {
                "@type": "Person",
                "@id": "https://www.tjpodcast.org/person/guest",
                "name": {
                    "@language": "en",
                    "@value": "Kurt Kohlstedt"
                },
                "roleName": "Guest"
            }
        }
    ],
    "releasedEvent": [
        {
            "@type": "FeaturedEvent",
            "location": "US",
            "startDate": "2020-04-18T20:00",
            "endDate": "2020-05-21T20:00",
            "publishedBy": {
                "@type": "Organization",
                "@id": "https://www.tjpodcast.org/organization/tjpodcast",
                "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
                "name": "TJPodcast"
            }
        },
        {
            "@type": "ExclusiveEvent",
            "location": "US",
            "startDate": "2020-04-18T20:00",
            "endDate": "2020-04-24T20:00",
            "publishedBy": {
                "@type": "Organization",
                "@id": "https://www.tjpodcast.org/organization/tjpodcast",
                "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
                "name": "TJPodcast"
            }
        },
        {
            "@type": "ExclusiveEvent",
            "location": "CA",
            "startDate": "2020-04-21T20:00",
            "endDate": "2020-04-24T20:00",
            "publishedBy": {
                "@type": "Organization",
                "@id": "https://www.tjpodcast.org/organization/tjpodcast",
                "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
                "name": "TJPodcast"
            }
        }
    ]
}