lukaswhite / podcast-feed-parser
A PHP library for parsing podcast feeds
Installs: 7 741
Dependents: 3
Suggesters: 0
Security: 0
Stars: 9
Watchers: 3
Forks: 4
Open Issues: 5
Requires
- lukaswhite/itunes-categories: ^0.0.2
- simplepie/simplepie: ^1.5
Requires (Dev)
- phpunit/php-code-coverage: ^9.2
- phpunit/phpunit: ^9.5
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();