Multimedia with Plone PyConBrasil 2007 Joinville, Brazil Nate Aune www.jazkarta.com
May 12, 2015
Multimedia with Plone
PyConBrasil 2007Joinville, Brazil
Nate Aunewww.jazkarta.com
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
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)
• Assigning Creative Commons licenses
• Improved uploading using Flash, Java applet, Tramline
• Community features: tagging, rating, commenting
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• 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)
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
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/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
Demoplone.tv
Multimedia and Podcasting with Plone (10/27/06) www.jazkarta.com 866.864.4918
What’s nextplone4artists.org/products/plone4artistssite/roadmap
53
More info• Product pages:
• plone4artists.org/products
• SVN repository:
• plone4artists.org/svn/projects
• Mailing list:
• groups.google.com/group/p4a-user
• IRC:
• #plone4artists on irc.freenode.net
Plone4Artists / multimedia sprint
• when:
• October 13-15, 2007
• where:
• Naples, Italy
• what:
• http://openplans.org/projects/plone4artists-sprint
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
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