SwiftSchema Logo

    SwiftSchema

    Intuitive Schema Generation at Your Fingertips

    AboutLearnContact

    Audio Object Schema Generator — Describe Playable Audio

    Generate valid AudioObject JSON‑LD for podcasts and audio files. Clarify content URL, title, duration, language, and authorship for better understanding.

    Why many audio pages underperform

    Pain points we solve

    • Missing or incorrect contentUrl causes broken playback context.
    • Duration is not in ISO 8601, leading to validator warnings.
    • Language and authorship are unclear, reducing discovery and attribution.
    • Manual JSON‑LD is inconsistent across episodes/files.

    How SwiftSchema helps

    Solution

    The AudioObject generator guides the essentials: contentUrl (actual audio file), optional page url, name, description, encodingFormat, and ISO 8601 duration.

    It supports inLanguage and author (Person or Organization) to improve attribution and discovery, and outputs copy‑ready JSON‑LD for your audio pages.

    How it works

    How it works

    1. Choose AudioObject in the generator below.
    2. Enter title, description, and contentUrl (direct audio file URL).
    3. Add page url, encodingFormat (e.g., audio/mpeg), and ISO 8601 duration (e.g., PT42M).
    4. Provide inLanguage and author (Person/Organization) when available.
    5. Copy JSON or Script, paste into your audio or episode page, and validate in the Rich Results Test.
    Generate AudioObject JSON‑LD

    Paste once per audio file. Validate. Ship.

    What is AudioObject structured data?

    AudioObject is a Schema.org type that documents downloadable or streamable audio. It captures the actual file URL (

    contentUrl
    ), the page that hosts the player (
    url
    ), metadata such as title, description, duration, encoding format, and credits (author/publisher). Search engines rely on these cues to understand whether a page contains a playable podcast episode, audiobook snippet, guided meditation, or voiceover clip. Without the schema, crawlers must infer details from HTML alone, which is risky when the audio player renders client-side or when multiple files live on the same page.

    AudioObject can stand on its own or be nested inside PodcastEpisode, MusicRecording, or CreativeWork. Use it whenever you expose a discrete audio file—even if you already have Podcast markup—because it ensures the file-level details (bitrate, duration, language) are explicit. Think of AudioObject as the ground truth: PodcastEpisode references it, but the object itself points to the MP3, WAV, or AAC asset users actually hear.

    Essential properties to include

    1. contentUrl
      — the direct URL to the audio file (e.g.,
      https://cdn.example.com/audio/show-42.mp3
      ). Avoid using streaming playlist URLs unless that’s the only option.
    2. url
      — the public landing page where people play or download the file. This helps search engines tie the asset to a canonical page.
    3. name
      — the episode or track title. Keep it consistent with your on-page H1 and RSS feed.
    4. description
      — a concise summary of the audio. Include guest names, topics, or chapters to improve relevance.
    5. encodingFormat
      — MIME type such as
      audio/mpeg
      ,
      audio/aac
      , or
      audio/wav
      .
    6. duration
      — ISO 8601 duration string, e.g.,
      PT36M15S
      (36 minutes, 15 seconds).
    7. inLanguage
      — BCP 47 language code (
      en-US
      ,
      es-MX
      ) so speech surfaces know the primary language.
    8. author
      /
      creator
      — Person or Organization responsible for the audio. Include
      sameAs
      links if the author has notable profiles.
    9. datePublished
      — when the audio first went live. Add
      dateModified
      if you later remaster or edit the file.
    10. thumbnailUrl
      — artwork associated with this episode or recording, ideally 1,200px+ for discoverability.

    Optional extras:

    transcript
    (link to text),
    genre
    ,
    interactivityType
    (“mixed”, “active”),
    regionsAllowed
    ,
    expires
    (for limited-time releases).

    Content and asset preparation

    Before generating schema, confirm the following:

    • The audio file is hosted at a stable URL (no expiring presigned links or query strings that change daily).
    • The landing page displays an accessible player (HTML
      <audio>
      , custom React player, or embedded platform) so users can listen without digging through RSS feeds.
    • The title, episode number, and description match what you provide in RSS/Apple Podcasts/Spotify to avoid conflicting metadata.
    • You have a published transcript or at least bullet-point summary; schema should not promise transcripts that don’t exist.
    • Image artwork is compressed, served via HTTPS, and free of licensing restrictions.

    If you serve geo-restricted audio, note that in the copy and use

    regionsAllowed
    /
    regionsDenied
    to set expectations.

    Implementation checklist

    1. Identify the canonical player page (
      url
      ) for each audio item.
    2. Collect metadata: title, description, publish date, duration, encoding format, language, author credits, artwork URL, transcript link.
    3. Verify
      contentUrl
      : confirm the file is publicly fetchable (200 status, correct MIME type). For CDNs requiring tokens, consider using signed URLs with long expirations or provide a fallback download link.
    4. Generate JSON‑LD with the form below, filling required and recommended properties.
    5. Embed once per audio item inside the landing page. If the page hosts multiple tracks, include an AudioObject block per track with unique
      @id
      s.
    6. Validate via Rich Results Test or the Schema Markup Validator. Pay attention to errors around duration formatting or inaccessible file URLs.
    7. Monitor search appearance in Search Console (Performance > Discover or Search) to spot improvements after deployment.

    Hosting and CDN best practices

    • Serve audio over HTTPS with CORS headers that allow crawlers to fetch the file.
    • Avoid aggressive hotlink protection that blocks Googlebot; whitelist the major crawler user agents if using a CDN firewall.
    • Keep the file accessible at the same URL long-term. Changing
      contentUrl
      breaks existing references in podcast clients and search indexes.
    • Provide multiple encoding formats if you cater to legacy browsers (MP3, AAC). Reference each format using
      encodingFormat
      or multiple AudioObjects if necessary.
    • Use descriptive file names (e.g.,
      season3-episode7-legal-updates.mp3
      ) to reinforce topical relevance.

    Transcripts and accessibility

    Adding transcripts improves accessibility and searchability. When you host a transcript:

    • Reference it using
      transcript
      : either inline text or a URL to the transcript page.
    • Make sure the transcript matches the actual audio to avoid policy issues.
    • Highlight key timestamps or chapter markers in the transcript so listeners can jump to relevant sections. Some CMSs support linking those markers via
      clip
      or
      hasPart
      .
    • Use
      interactionStatistic
      to log play counts if you have verifiable analytics data; otherwise leave it out.

    Troubleshooting checklist

    • Duration errors: Ensure the string starts with
      P
      (period), includes
      T
      before time units, e.g.,
      PT15M30S
      . Use uppercase letters.
    • Unavailable
      contentUrl
      :
      Test the URL in curl or your browser without authentication. If it redirects, ensure the final destination stays audio/mpeg.
    • Multiple AudioObjects overriding each other: If you embed several on one page, include distinct
      @id
      fields (e.g.,
      "#audio-episode-42"
      ) to keep them separate.
    • Language mismatches: If the audio is bilingual, specify the dominant language and mention additional languages in the description.
    • Missing authors: Tie episodes to creators using Person schema; failing to credit talent can reduce perceived expertise.

    Maintenance tips

    • Log every upload with publish date, file URL, and schema status. When you swap files (e.g., re-edit), update
      dateModified
      and note the change.
    • If you migrate hosting providers, set up redirects from old
      contentUrl
      values to new ones and update the schema simultaneously.
    • Review older episodes quarterly to ensure transcripts, artwork, and credits are still accurate. Replace dead transcript links promptly.
    • For limited-time releases, add
      expires
      so search engines know when not to feature the audio.

    Common Errors & Fixes

    • Wrong duration format: always use ISO 8601 (e.g.,
      PT1H2M
      ).
    • Broken
      contentUrl
      :
      ensure the URL returns 200 and serves audio; avoid temporary presigned links.
    • Missing language metadata: set
      inLanguage
      to match the speech; add
      subtitleLanguage
      if you host captions/subtitles.
    • No attribution: include
      author
      /
      creator
      and, if applicable,
      publisher
      to signal ownership.
    • Only linking to YouTube/Spotify: even if the episode lives on platforms, host or proxy a direct file URL or at least link to a playable landing page you control.

    Required properties

    • contentUrl

    Recommended properties

    • name
    • description
    • encodingFormat
    • duration
    • inLanguage
    • author.name
    Minimal JSON-LD
    Validate
    {
      "@context": "https://schema.org",
      "@type": "AudioObject",
      "contentUrl": "https://cdn.example.com/audio/episode1.mp3",
      "name": "Episode 1"
    }

    FAQs

    What format for duration?Show
    Use ISO 8601 durations like `PT42M` for 42 minutes.
    Where should contentUrl point?Show
    Directly to the audio file when possible; also include the page `url`.

    Generate Audio Object schema

    Fill in page details, copy JSON or Script, and validate.

      Schema Type

      🎵 Audio Object Schema Generator

      Describe audio files with content URL, duration, encoding, author, and language for improved audio understanding.

      Generated Schema

      Validate your schema here.