podcast-feed-serializer
v1.0.4
Published
Serialize & Deserialize RSS Feeds for Podcasts into objects
Downloads
31
Maintainers
Readme
podcast-feed-serializer
A simple (de)-serializer for Apple-based podcast RSS (XML) feed definitions, which is the de-facto industry-standard anyway.
Usage
It sports 3 main classes (Podcast
, PodcastEpisode
& FeedSerializer
).
const myPodcast: Podcast = new Podcast({ title: 'Hello world' });
myPodcast.episodes.push(new PodcastEpisode({ title: 'Episode 1' }))
...
// to construct xml from objects
if (new FeedSerializer().isValidForSave(myPodcast)) {
var podcastXml: string = new FeedSerializer().saveFeed(myPodcast)
// to construct objects from xml
new FeedSerializer().loadFeed(x).then(myPodcastAgain => {
console.log(myPodcastAgain.title)
});
}
Validation / Requirements
The validation is aimed for meeting Apple's requirements to publish a podcast through their service, which in turn will open the door to other podcast services as well.
Overview: https://podcasters.apple.com/support/823-podcast-requirements
Deep Dive: https://help.apple.com/itc/podcasts_connect/#/itcb54353390
In a nutshell, ensure that the following Podcast
fields are filled
- Title
- Description
- ImageUrl
- Language
- Category
- Author
- Website
and at least 1 PodcastEpisode
exists.
Browser-based
If you have a scenario where you want to input/output the XML to the user you might find upload/download useful.
- Reading files can be achieved with the native
FileReader
interface (https://developer.mozilla.org/en-US/docs/Web/API/FileReader)
// Angular way of retrieving a file from a input[type=file]
var file = this.file.nativeElement.files[0]
var reader = new FileReader();
reader.onload = function(e: any) {
var podcastXml = reader.result.toString();
};
reader.readAsText(file);
- Writing files can be done with libraries like
file-saver
(https://www.npmjs.com/package/file-saver)
import { saveAs } from "file-saver";
...
saveAs(new Blob([podcastXml], {type: 'application/xml'}), "feed.xml");