Multimedia with PloneDZUG Conference 2007
June 5, 2007, Potsdam
Nate Aunewww.jazkarta.com
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
/me
• Founder Jazkarta Consulting (Boston, MA)
• Founder Plone4Artists community project
• Founder PloneMultimedia suite of products
• Organizer of sprints and Plone training
• Musician: saxophonist and composer
2
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Agenda
• Why is podcasting important?
• What is Plone’s answer to podcasting?
• How does Zope 3 make this easier?
• Challenges of large media files
• What’s next?
• How to get involved
3
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
What is podcasting?
• From Wikipedia:
• “Podcasting is the distribution of audio or video files, such as radio programs or music videos, over the internet using either RSS or Atom syndication for listening on mobile devices and personal computers.”
5
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Podcasting is growing
• FeedBurner now distributes 47,000 different podcasts, which means there are more podcasters than radio stations.
• The rate at which new podcasters emerge on the scene has doubled in the last six months.
10
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Projections
• The Diffusion Group forecasts that the use of podcasting among U.S. consumers is growing at a compound annual rate of 101 %
• By 2010, 56.8 million Americans will be using “time-shifted digital audio files” or podcasts
Source: Podcasting in the Enterprise, eWeek Oct. 2, 2006
11
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
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
12
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
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)
• Creative Commons licensing
• Artist/band portfolios
• Community: tagging, rating, commenting, blogs
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
Plone4ArtistsAdditional components• Plone4Artists Revver Video (by Alec Mitchell)
• PloneFlashUpload (bulk uploads in browser)
• ContentLicensing (assign licenses to content)
Not released
• Plone4ArtistsNewsletter (by Malthe Borch)
• Plone4ArtistsPodcast (embed audio in blog)
• Plone4ArtistsSubtyper (subtype any content)
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
A natural evolution
• CMFAudio (CMF-based)
• ATAudio (Archetypes-based)
• Plone4ArtistsAudio (Zope 3)
19
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
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
20
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
No more new content types
• ATAudio
• ATVideo
• ATPhoto
Old approach New approach
54
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
No more new content types
• ATAudio
• ATVideo
• ATPhoto
Old approach New approach
54
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
No more new content types
• ATAudio
• ATVideo
• ATPhoto
• ATFile
• Plone4ArtistsAudio
• Plone4ArtistsVideo
• ATImage
• Plone4ArtistsImage
• ATLink
• Plone4ArtistsLink
Old approach New approach
54
Pure Zope 3components
with Plone
wrappers
Success stories
• talk.bmc.com - blogs and podcasts
• engagemedia.org - social justice videos
• thedailyreel.com - online guide to videos
• bilive.it - online community for musicians
talk.bmc.com
engagemedia.org
TheDailyReel.com
bilive.it
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
ID3 Metadata in iTunes
21
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
22
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Add a normal File
23
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Add new file form
24
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Audio view page
25
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Demo tool icons
26
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Edit audio
• ID3 metadata is auto-extracted
• Modified metadata is written back to the file
• Cover art image field
• Genre vocabulary
• Comment field
27
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Add blob file
28
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Normal file listing
29
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Activate audio container
30
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
View is now track listing
31
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Add via WebDAV
32
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Connect to server
33
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Mounted Plone folder
34
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Drag-n-drop copy to Plone
35
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Track listing after upload
36
Uploading video
Embedding video
1. 2.
3.
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
Podcasting
37
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Podcast feed
38
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
39
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Subscribe to podcast
40
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Smart Folders
41
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Activate media container
42
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Smart Folder as podcast
43
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
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)
44
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
Challenges of large filesUploading and Storing
45
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Pain points
• Uploading large files is tedious
• ZODB is currently not designed to store large files
46
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Making upload less tedious
• WebDAV/FTP
• gives you progress bar but it can be buggy
• PloneJUpload - java applet
• not all browsers have Java support
47
PloneJUpload
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
PloneFlashUpload
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
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
50
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Alternative storage layers
• FileField(‘mediafile’, storage=...)
• ExternalStorage
• used on plone.org’s PloneSoftwareCenter
• FileSystemStorage
• used by Andreas Jung for large media project
51
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
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
52
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
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
What’s nextplone4artists.org/products/plone4artistssite/roadmap
53
Easy install
• Automated install using buildout:
• Downloads and installs:
• Zope, Plone, PIL, add-on products
• Creates Plone instance
• Quickinstalls Plone4Artists products
• Applies GenericSetup profile (TODO)
• Imports sample content using gsxml (TODO)
Buildout makes it easyCheck out the buildout, bootstrap and run buildout
$ svn co http://plone4artists.org/svn/projects/Plone4ArtistsSite/buildout p4a-buildout
$ cd p4a-buildout
$ python bootstrap.py
$ bin/buildout -v (go get a coffee)
Start the instance
$ bin/instance fg
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
Community feedback
• Commenting
• easycommenting, zc.comment
• Ratings
• lovely.rating, contentratings, RatingsEngine
• Tagging
• lovely.tag, tagger, topicwidget
57
More info• Product pages:
• plone4artists.org/products
• SVN repository:
• plone4artists.org/svn/projects
• Mailing lists:
• lists.plone4artists.org
• IRC:
• #plone4artists on irc.freenode.net
Plone4Artists / multimedia sprint
• when:
• July 18-22, 2007
• where:
• Boston, MA
• what:
• http://plone.org/events/sprints/plone4artists/topics
• who:
• http://plone.org/events/sprints/plone4artists/participants
www.jazkarta.com 866.864.4918Multimedia and Podcasting with Plone (10/27/06)
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)
55