Skip to content

feat: Add /related endpoint for podcast recommendations #570

@KevinTCoughlin

Description

@KevinTCoughlin

Summary

Add an endpoint that returns similar podcasts based on a given podcast ID.

Endpoint Design

GET /related?id=123456&limit=10

Response:

{
  "related": [
    { "trackId": 789, "trackName": "Similar Podcast", "genre": "Technology" }
  ],
  "sourceId": 123456,
  "matchedBy": "genre"
}

Implementation Notes

  • Use iTunes lookup API to fetch podcast details: https://itunes.apple.com/lookup?id={id}
  • Match by genre first, then by search term similarity
  • Cache aggressively (podcast metadata doesn't change often)
  • Consider using genreIds array from podcast metadata

Acceptance Criteria

  • /related?id=123 returns similar podcasts
  • Returns empty array for invalid/unknown podcast ID
  • Respects limit parameter (1-20)
  • Response is cached appropriately
  • Tests added

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions