Skip to content

Conversation

Sporiff
Copy link
Member

@Sporiff Sporiff commented Aug 13, 2025

Following discussions on Matrix, I put together this summary of how GUIDs should be calculated using namespaces. This document currently sits outside of the specification hierarchy, but can be divided up into the relevant specs at a later date.

The goal of this document is to set out a normalized approach for calculating GUIDs using predefined namespaces. To put it shortly:

  1. The client MUST be responsible for calculating the GUID.
  2. Feed GUIDs MUST be parsed from the guid tag if present, or calculated by combining the feed URL and the global podcast namespace (ead4c236-bf58-58c6-a2c6-a6b28d128cb6).
  3. Episode GUIDs MUST be calculated using the calculated feed GUID and EITHER:
     1. The normalized (trimmed) guid tag for the episode if available OR
     2. The normalized (lowercased and trimmed) combination of title, enclosure_url, and publish_date, in that order.

The result is a consistent calculation of UUID values that will match across all client implementations. This has the added benefit of reducing the amount of database storage used on the server side as duplicate feeds/episodes can be avoided, and instead users can simply be linked to existing entries. Similarly, it makes the data more portable between different OPA hosts.

I'd like some input specifically regarding my assumption about the metadata used in the podcast episodes.

  • Are these values always present?
  • How well would this work with client deduplication methods?

@Sporiff Sporiff self-assigned this Aug 13, 2025
Copy link

netlify bot commented Aug 13, 2025

Deploy Preview for openpodcastapi ready!

Name Link
🔨 Latest commit 92c6995
🔍 Latest deploy log https://app.netlify.com/projects/openpodcastapi/deploys/68a345086fa114000844edc1
😎 Deploy Preview https://deploy-preview-140--openpodcastapi.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant