A presentation by Nate Aune at the PyConBrasil 2007. With the rise of podcasting and sharing multimedia content online, there is a growing need for tools that help content producers publish multimedia to their website. We will discuss Plone, a popular open source CMS, and the Plone4Artists suite of products which streamlines the process of publishing of videos and podcasts.
3. What is podcasting?
• Simplified distribution
• audio/video files as enclosures in an RSS/
Atom feed
• Subscribe once and forget about it
• On-demand
• Users can listen/watch your multimedia
content on their device of choice
• Don’t need to visit your website
4. What is Plone’s answer?
• Plone out-of-the-box
• File content type (no metadata, no play)
• Syndication is only RSS 1.0 (need RSS 2.0)
• PloneMultimedia suite of add-on products
• ATAudio, ATVideo, ATPhoto
• qRSS2Syndication for podcasting
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
12
5. What is Plone4Artists?
• Grassroots project to build an out-of-the-box
portal solution for artist communities
• Built on top of the core Plone product
• Leverages Zope 3 component architecture
• Doesn’t introduce new content types
• Easy to extend to support new media types
• Easy to install and pre-configured
6. Features
• Drag-n-drop addition of content (WebDAV)
• Extraction of audio/video metadata (ID3)
• Playback of audio and video in browser (Flash player)
• Podcasting and vodcasting (RSS 2.0)
• Calendaring (import/export of iCal)
• Assigning Creative Commons licenses
• Improved uploading using Flash, Java applet, Tramline
• Community features: tagging, rating, commenting
7. Plone4Artists
Core Components
• Plone4ArtistsSite
• Plone4ArtistsAudio (upload mp3 or ogg)
• Plone4ArtistsVideo (upload video or embed)
• Plone4ArtistsCalendar (month & listing view)
SVN at http://plone4artists.org/svn/projects
8. Plone4Artists
Additional components
• Plone4ArtistsNewsletter (by Malthe Borch)
• PloneFlashUpload (bulk uploads in browser)
• ContentLicensing (assign licenses to content)
Not released
• ContentRating (rate any piece of content)
• ContentTagging (tag any piece of content)
• Plone4ArtistsPodcast (embed audio in blog)
• Plone4ArtistsRevverVideo (by Alec Mitchell)
• Plone4ArtistsSubtyper (subtype any content)
9. A natural evolution
• CMFAudio (CMF-based)
• ATAudio (Archetypes-based)
• Plone4ArtistsAudio (Zope 3)
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
19
10. Why Zope 3?
• Usability - user uploads File and system
figures out how to handle it. Easier with Z3
• Pluggability - easily extend to support other
formats besides MP3 and Ogg
• Reusability - abstracting the code into Zope
3 components means it is easier to reuse
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
20
11. No more new content types
Old approach New approach
• ATAudio
• ATVideo
• ATPhoto
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
54
12. No more new content types
Old approach New approach
• ATAudio
• ATVideo
• ATPhoto
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
54
13. No more new content types
Old approach New approach
• ATFile
• ATAudio • Plone4ArtistsAudio
• ATVideo • Plone4ArtistsVideo
• ATPhoto • ATImage
• Plone4ArtistsImage
• ATLink
Multimedia and Podcasting with Plone (10/27/06)
• Plone4ArtistsLink
www.jazkarta.com 866.864.4918
54
26. Edit audio
• ID3 metadata is auto-
extracted
• Modified metadata is
written back to the file
• Cover art image field
• Genre vocabulary
• Comment field
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
27
27. Add blob file
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
28
44. Smart Folder as podcast
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
43
45. RSS 2.0 Syndication
• Using basesyndication (Zope 3 adaptors)
• also used to provide RSS feeds for Quills
• Support iTunes metadata
• targeted for Plone4ArtistsAudio 1.0 final
• Syndication of other media files
• Vodcasting (videos), Photocasting (photos)
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
44
46. Challenges of large files
Uploading and Storing
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
45
47. Pain points
• Uploading large files is tedious
• ZODB is currently not designed to store
large files
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
46
48. Making upload less tedious
• WebDAV/FTP
• gives you progress bar but it can be buggy
• PloneJUpload - java applet
• not all browsers have Java support
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
47
50. Preferred upload
solutions
• ZipFileTransport
• upload a Zip file and it’s extracted on the
server
• PloneFlashUpload
• upload multiple files using Flash widget in
browser
• Tramline
• bypass Zope and use Apache
53. Buildout makes it easy
Check out the buildout, bootstrap and run buildout
$ svn co http://plone4artists.org/svn/projects/
p4a.buildout
$ cd p4a.buildout
$ python bootstrap.py
$ bin/buildout -v (go get a coffee)
Start the instance
$ bin/instance fg
54. Community feedback
• Commenting
• easycommenting, zc.comment
• Ratings
• lovely.rating, contentratings, RatingsEngine
• Tagging
• lovely.tag, tagger, topicwidget
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
57
59. Idea: Plone4ArtistsLink
• Existing new content types
• ATGoogleVideo
• ATOdeoAudio
• ATYouTubeVideo?
• Activate remote media on an ATLink
• Identifies remote service (Google, Odeo,YouTube)
• Applies an appropriate view (Flash player)
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
55
60. Why store media on FS?
• Avoid ZODB bloat
• Expose to 3rd party streaming software
• Easier to backup or move to another system
• Transcode video files
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
50
61. Alternative storage layers
• FileField(‘mediafile’, storage=...)
• ExternalStorage
• used on plone.org’s PloneSoftwareCenter
• FileSystemStorage
• used by Andreas Jung for large media project
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
51
62. Alternative file field
• BlobFile
• dependent on blob
• ATTramline
• dependent on Tramline
• AttachmentField
• new version has FlexStorage
• PLIP #154 - Large File Handling
• http://plone.org/products/plone/roadmap/154
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
52
63. Preferred solutions
• ZODB with blob support
• Now working on Zope 2.9 / 2.10 / 2.11
• Use with ATBlobField from Enfold Systems
• Amazon S3
• scalable storage solution
• pay for what you use