Skip to content

Instantly share code, notes, and snippets.

@crftwr
Created October 27, 2019 13:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save crftwr/b619bf8984866ffb5ea5abd29140f345 to your computer and use it in GitHub Desktop.
Save crftwr/b619bf8984866ffb5ea5abd29140f345 to your computer and use it in GitHub Desktop.
Generate podcasting RSS file from mp3 files
import os
import datetime
from rfeed import *
# -----
base_url = "https://somewhere/podcast/showname"
show_title = "show name"
author = "someone"
# -----
def generatePodcastRss( base_url, show_title, author ):
cover_filename = "cover.jpg"
cover_url = "%s/%s" % ( base_url, "cover.jpg" )
items = []
filenames = os.listdir()
filenames.sort()
for filename in filenames:
if filename.endswith(".mp3"):
name, ext = os.path.splitext(filename)
link = link = "%s/%s" % (base_url, name)
mp3_url = "%s/%s" % ( base_url, filename )
itunes_item_extension = iTunesItem(
author = author,
image = cover_url,
#duration = "01:11:02",
explicit = "clean",
subtitle = "",
summary = ""
)
items.append(
Item( title = name,
#link = link,
#description = "",
author = author,
#guid = Guid(link),
#pubDate = datetime.datetime(2010, 11, 20, 0, 0),
enclosure = Enclosure( url = mp3_url, length=0, type='audio/mpeg'),
extensions = [itunes_item_extension]
)
)
itunes_feed_extension = iTunes(
author = author,
subtitle = "",
summary = "",
image = cover_url,
explicit = "clean",
#categories = iTunesCategory(name = 'Technology', subcategory = 'Software How-To'),
#owner = iTunesOwner(name = 'me', email = 'me@gmail.com')
)
feed = Feed(
title = show_title,
link = base_url,
description = "",
language = "ja-JP",
lastBuildDate = datetime.datetime.now(),
items = items,
extensions = [itunes_feed_extension]
)
with open( "rss.xml", "w", encoding="utf-8" ) as fd:
fd.write(feed.rss())
generatePodcastRss( base_url, show_title, author )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment