lukaswhite/podcast-feed-parser

A PHP library for parsing podcast feeds

1.2.0 2022-07-26 13:56 UTC

This package is auto-updated.

Last update: 2024-10-26 19:21:50 UTC


README

A PHP library for parsing Podcast XML/RSS feeds.

Features

  • Get channel metadata, such as the title and description
  • Retrieve a list of the episodes
  • Supports iTunes metadata such as categories
  • Get artwork and media files
  • Sort episodes by their publication date, episode number or split into seasons

Installation

composer require lukaswhite/php-feed-parser

Usage

use Lukaswhite\PodcastFeedParser\Parser;

$parser = Parser();
$parser->load('/path/to/feed/feed.rss');
$podcast = $parser->run();

or

$parser = Parser();
$parser->setContent(/** raw content */);
$podcast = $parser->run();

The run() method returns an instance of the Podcast class, on which the getEpisodes() method returns a collection of the podcast episodes.

Simple Example

This only shows a limited selection of the available fields; you'll find a complete list here.

$podcast = $parser->run();
$id = $db->insert(
    'podcasts',
    [
        'title' =>  $podcast->getTitle(),
        'description' => $podcast->getDescription(),
        'artwork' => $podcast->getArtwork()->getUri(),
    ]
);

foreach($podcast->getEpisodes() as $episode) {
    $db->insert(
        'episodes',
        [
            'podcast_id' => $id,
            'guid' => $episode->getGuid(),
            'title' =>  $episode->getTitle(),
            'description' => $episode->getDescription(),
            'media_uri' => $podcast->getMedia()->getUri(),
        ]
    );
}

return $podcast->getEpisodes()->mostRecent();