Audio podcasting functionality for django sites.
The source code for Django Podcasting can be found and contributed to on django-podcasting. There you can also file tickets.
Django Podcasting started off as a heavily stripped down version of the wonderful django-podcast. Eventually this app grew enough differences to be useful to others as a reusable applciation outside of my sandbox. I hope it inspires you to share your sounds with the rest of the world, whatever they may be.
This application can seen running on:
At the time I had no interset in the Video podcasting features of django-podcast and video introduces a lot of extra complexity into the application, considering I was first studying compliance with the various specs and the syndication feed framework.
This application also differs from django-podcast in that it uses UUID identifiers, support multiple authors,makes use of Django’s sites framework and syndication feed framework. Podcasting only supports Django 1.3 or greater due to its choice in class-based views, though writing additional views and urls to work with 1.2 would be a trivial task. There are also other less significant diffences which may or may not be of relavance to your project.
An individual podcast is a
show has many
episodes 001, 002, etc.
episode has one or many
enclosures formats for example
.flac, .wav or .mp3.
django-autoslug which is included
in the setup.py.
- Supports Atom, RSS 2.0, iTunes, and FeedBurner by attempting to match as best as possible their detailed specifications and additionally utilizing Django’s syndication feed framework.
- Supports Django’s sites framework allowing for great flexibility in the relationships between shows and sites in a multi-site application.
To publish a podcast to iTunes it is required to set a license. It is suggested to install django-licenses which provides a light weight mechanism for adding licenses to the shows.
- Serve your media from anywhere
- Podcasting assumes nothing about where your media file will be stored, simply save any valid url to an enclosure object.
- Multiple enclosure types
- Want to offer versions in .ogg, .flac, and .mp3? It’s possible.
- Podcasting uses a UUID field for show and episode uniqueness rather than relying on the url.
- Bundled Forms and Templates
- Podcasting comes with some example forms to get you started with for allowing site users ability to manage a show. Generic templates are also bundled to get you started.
To add commenting to you app, you must use a separate Django application. One of the simplest options is django-disqus, but you should also look into django-threadedcomments and Django’s built in comments framework.
There is an field on both the Show and Episode models to enable commenting. The default is to enable commenting. To completely disable comments for all of an individual show’s episodes, set
enable_commentsfield on the Show model to
False. To disable comments on an individual episode, set
enable_commentson the Show model to
enable_commentson the Episode model to
- Draft Mode
You may work on the new episode in and publish it when ready, simply by checking publish in the Admin. While in draft mode the episode’s
get_absolute_urlreturns a link comprised of the show_slug and the episode’s
uuidbut once live, it uses the show slug, friendlier publish date and episode slug.
The following features are expected to work with the most recent versions of the following libraries, if you find an issue please report it on github.
- Thumbnailed Album Artwork Install django-imagekit,
- easy-thumbnails or sorl-thumbnails_ in your project to get sane
defaults and model support for album artwork thumbnails. Either may
be is added to your project at point any time and the
django-podcastingapp will recognize and use it. It is highly advised to use a thumbnailing app because thumbnailing podcast artwork for iTunes is nontrivial. Support for other thumbnail libraries will be considered for inclusion.
- Taggable episodes and shows
- Install django-taggit to provide tagging support for episodes and
shows. Taggit may be is added to your project at point any time and
django-podcastingapp will recognize and support it. Taggit may become a requirement in 1.0 if there are no strong objections.
- Share to Twitter
- Django Pocasting can optionally provide the ability to announce new episodes on twitter. Install python-twitter to get started.
- Embeddable Media
- Want to display Youtube, Vimeo or Soundcloud content on Episode detail pages? Django Pocasting provides the ability to link to external embeddable media via the podcasting.models.EmbedMedia class. Optionally install django-embed-video for easy embedding of YouTube and Vimeo videos and music from SoundCloud.
There has yet to be a need to configure anything via the
settings.py file and the included templates and forms should be
enough to get started. One area that may be somewhat difficult is
connecting with a commenting application. For the simplest option,
take a look at django-disqus.
For the 0.9.x series I’d like to first see if others have interest in this application and fix any issues discovered with the current version.
If there is desire, video support after a 1.0 (audio only) version has been released is possible.