torann/podcastfeed is a Laravel package for generate rss feeds for podcasts in laravel 5..
It currently has 48 GitHub stars and 5.873 downloads on Packagist (latest version 0.2.2).
Install it with composer require torann/podcastfeed.
Discover more Laravel packages by torann
or browse all Laravel packages to compare alternatives.
Last updated
Generate a RSS feed for podcast for Laravel 5.
From the command line run
$ composer require torann/podcastfeed
Once installed you need to register the service provider with the application. Open up config/app.php and find the providers key.
'providers' => [
...
Torann\PodcastFeed\PodcastFeedServiceProvider::class,
...
]
This package also comes with a facade, which provides an easy way to call the the class. Open up config/app.php and find the aliases key
'aliases' => [
...
'PodcastFeed' => Torann\PodcastFeed\Facades\PodcastFeed::class,
...
];
Run this on the command line from the root of your project:
$ php artisan vendor:publish --provider="Torann\PodcastFeed\PodcastFeedServiceProvider"
A configuration file will be publish to config/podcast-feed.php.
setHeader
The header of the feed can be set in the config file or manually using the setHeader method:
PodcastFeed::setHeader([
'title' => 'All About Everything',
'subtitle' => 'A show about everything',
'description' => 'Great site description',
'link' => 'http://www.example.com/podcasts/everything/index.html',
'image' => 'http://example.com/podcasts/everything/AllAboutEverything.jpg',
'author' => 'John Doe',
'email' => '[email protected]',
'category' => 'Technology',
'language' => 'en-us',
'copyright' => '2016 John Doe & Family',
]);
addMedia Adding media to the feed.
foreach($this->podcastRepository->getPublished() as $podcast)
{
PodcastFeed::addMedia([
'title' => $podcast->title,
'description' => $podcast->title,
'publish_at' => $podcast->publish_at,
'guid' => route('podcast.show', $podcast->slug),
'url' => $podcast->media->url(),
'type' => $podcast->media_content_type,
'duration' => $podcast->duration,
'image' => $podcast->image->url(),
]);
}
toString Converting feed to a presentable string. The example below was pulled from a controller. In theory you could implement a caching method so that it doesn't have to render each time.
public function index()
{
foreach($this->podcastRepository->getPublished() as $podcast) {
PodcastFeed::addMedia([
'title' => $podcast->title,
'description' => $podcast->title,
'publish_at' => $podcast->publish_at,
'guid' => route('podcast.show', $podcast->slug),
'url' => $podcast->media->url(),
'type' => $podcast->media_content_type,
'duration' => $podcast->duration,
'image' => $podcast->image->url(),
]);
}
return Response::make(PodcastFeed::toString())
->header('Content-Type', 'text/xml');
}