Posted by Veggieryan on March 26, 2007 at 3:19am
</style></head><body dir="ltr"><p class="P1">Application for Summer of Code 2007: MultiPublisher Module</p><p class="P1"> by Ryan Grace <a href="http://www.thefractal.org/">www.thefractal.org</a> :: ryan@thefractal.org </p><p class="P2"> </p><p class="P2">Synopsis </p><p class="P3">This module presents a huge opportunity for the Drupal Community. By allowing any user on any Drupal powered site the ability to drag, drop, define and license many pieces of content simultaneously, we will very quickly increase the flow of media throughout all Drupal sites. Additionally, through a variety of media output and storage plugins, content can be simultaneously added to multiple sites at once. </p><p class="P2"> </p><p class="P2">Projects </p><p class="P3">The efforts will actually be a family of at least 4 modules, the focus of this proposal may need to be spread across multiple students and mentors: </p><ul style="margin-left:1.25cm;"><li class="P4" style="margin-left:0cm;"><p class="P4" style="margin-left:0.25cm;">multipublsher_dragdrop.module : Actual Drag and Drop inteface in Flash or Ajax. Essentially, as new files are dropped onto the upload bay area at the top, a dynamic table grows a new row for each piece of content. ( Realtime thumbnailing is a future helper module for each media type, proper hooks needed) The user can quickly add many files at once encouraging mass uploads. There would be required/optional cck field types for each enabled content type to match the options below:<br/>Each row of the table contains: </p></li><li class="P5" style="margin-left:0cm;"><p class="P5" style="margin-left:0.25cm;">Title/Thumbnail </p></li><li class="P5" style="margin-left:0cm;"><p class="P5" style="margin-left:0.25cm;">Media Type : (audio, video, image, blog, article, etc) </p></li><li class="P5" style="margin-left:0cm;"><p class="P5" style="margin-left:0.25cm;">Description : ( node body, could house additional cck fields in scrolling cell) </p></li><li class="P5" style="margin-left:0cm;"><p class="P5" style="margin-left:0.25cm;">Tags : (taxonomy, hierarchy or freetagging) </p></li><li class="P5" style="margin-left:0cm;"><p class="P5" style="margin-left:0.25cm;">License : ( Creative commons required fields with autocomplete)</p></li><li class="P5" style="margin-left:0cm;"><p class="P5" style="margin-left:0.25cm;">Sites to Publish to: (Depends on afore mentioned output plugins enabled per the admin on the site running this instance of the module) </p></li><li class="P5" style="margin-left:0cm;"><p class="P5" style="margin-left:0.25cm;">Parent site / child sites: which site is the origin, or home of this content which all other sites will link back to or reference. Requires url field for cck.</p></li><li class="P5" style="margin-left:0cm;"><p class="P5" style="margin-left:0.25cm;">Service Links : (digg, etc..) (use existing service links module)</p><p class="P5" style="margin-left:0.25cm;"> </p><p class="P6" style="margin-left:0.25cm;"> </p></li><li class="P6" style="margin-left:0cm;"><p class="P6" style="margin-left:0.25cm;">Output Plugins : There is a great possibility that a library of output plugins will be written. This will allow one piece of content to exist on many different sites. There should be a parent/child relationship between duplicate content so it can be linked back to its “origin site”... </p><ul style="margin-left:0.75cm;"><li class="P6" style="margin-left:0cm;"><p class="P6" style="margin-left:0.25cm;">Publish to ourmedia/internet archive : see the existing ourmedia publisher (desktop client)[7] and new project: here.[6] </p></li><li class="P6" style="margin-left:0cm;"><p class="P6" style="margin-left:0.25cm;">Integration with og groups per current node api hooks and [6] you could theoretically create groups on the fly to handle privacy. Ie: family photos you only want family members to see. Possible integration with buddy list...</p></li><li class="P6" style="margin-left:0cm;"><p class="P6" style="margin-left:0.25cm;">The need to upload directly to Amazon s3 rather than relay through the host may require some additions to the file api. [1] [5]</p></li><li class="P6" style="margin-left:0cm;"><p class="P6" style="margin-left:0.25cm;">The current work with Blip.tv integration is a good example: it uploads directly to Blip.tv, lets blip.tv encode the flash video, and returns an embeded flv on the originating site as if it were local. Learn more here [2] </p></li></ul><p class="P6" style="margin-left:0.25cm;"> </p></li><li class="P6" style="margin-left:0cm;"><p class="P6" style="margin-left:0.25cm;">Global Library: This is here for the future. .. </p><ul style="margin-left:0.75cm;"><li class="P6" style="margin-left:0cm;"><p class="P6" style="margin-left:0.25cm;">Global integration with drupal.module or openid[3] so that a user can login to any drupal site with the MultiPublisher installed and when submitting new content, has the option to repost any existing content he/she has uploaded to other sites in the past. This saves bandwidth and further encourages the flow of media. Possible feature to allow each user to optionaly host media on their own s3 or similar account....</p></li></ul></li><li class="P6" style="margin-left:0cm;"><p class="P6" style="margin-left:0.25cm;">Media Browser module that actively catalogs all publicly licencsed media by many criteria. This can be both stand-alone and as a plugin for the drag-drop interface to either allow downloading of the selected content or referenced reposting to a new child site. Each site could be a media sharing portal like this: [4]<br/> </p></li></ul><p class="P3"> </p><p class="P2">Use Cases </p><ul style="margin-left:0.75cm;"><li class="P7" style="margin-left:0cm;"><p class="P7" style="margin-left:0.25cm;">A user wishes to upload a video to ourmedia, blip, and several of their own sites without having to follow the same steps 10 times. </p></li><li class="P7" style="margin-left:0cm;"><p class="P7" style="margin-left:0.25cm;">A user wants to upload 40 photos to a gallery and doesn't have all day to do it. </p></li><li class="P7" style="margin-left:0cm;"><p class="P7" style="margin-left:0.25cm;">A very popular video can spread more quickly and be properly referenced and licensced across many sites without user difficulty, error or negligence. </p></li></ul><p class="P2"> </p><p class="P2">Success Criteria </p><ul style="margin-left:1.25cm;"><li class="P8" style="margin-left:0cm;"><p class="P8" style="margin-left:0.25cm;"><span class="T1">Create the modules described above. The functionality has to work in all</span></p></li></ul><p class="P3"> widely used browsers which include Internet Explorer 6 and 7, Mozilla and its</p><p class="P3"> derivates, Opera 8 and above and Safari. If the enhancements don’t work in a browser, they degrade gracefully, possibly to a single upload interface retaining the cross publishing functionality. </p><ul style="margin-left:1cm;"><li class="P9" style="margin-left:0cm;"><p class="P9" style="margin-left:0.25cm;">Obviously, the project will need to be broken in to bite-size pieces so that is manageable for mere mortals, unless it is assigned to a an extremely talented and well managed developer. </p></li></ul><p class="P3"><span class="T1"/></p><p class="P2">Roadmap </p><p class="P3"> 1. NOW : Publish proposal to the Drupal community and try to get some feedback and</p><p class="P3"> suggestions . </p><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P10" style="margin-left:0cm;"><p class="P10" style="margin-left:0.25cm;">May-JulyImplement : features in the order they are specified above. This is a huge project that will need to be shared between many people.</p></li><li class="P10" style="margin-left:0cm;"><p class="P10" style="margin-left:0.25cm;">July-August : Launch small network of test sites to test cross-publishing. </p></li><li class="P10" style="margin-left:0cm;"><p class="P10" style="margin-left:0.25cm;">August- ??: Testing of all features with the help of the Drupal community. Development of more plugins and helper modules.</p></li></ol><p class="P11"> </p><p class="P12"> </p><p class="P12">Refrences: </p><p class="P12"> [1] http://solutions.amazonwebservices.com/connect/message.jspa?messageID=36... class="P12"> [2] http://drupal.org/node/89066</p><p class="P12"> [3]<span class="T2"> http://drupal.org/node/123035 </span></p><p class="P12"> [4] http://ccmixter.org/</p><p class="P12"> [5]<a href="http://drupal.org/project/fileapi">http://drupal.org/project/fileapi</a></p><p class="P12"> [6] <a href="http://spinxpress.com/">http://spinxpress.com/</a></p><p class="P12"> [7] http://www.ourmedia.org/tools</p></body></html>

Comments
Interesting Idea
I would be happy to help with testing on Ourmedia. Both as an upload target and as a potential implementor. We have been discussing similar ideas and are particularly interested in the multi-file and licensing aspects of the project.
Markus Sandy
http://Ourmedia.org
http://SpinXpress.com
Re: Multipublish project
Sounds great. We can help with testing, not sure I see even one chunk we could bite off development-wise, but we'll try to keep updated.
How would drupal sites tell each other that they're available?
~ ben melançon
member, Agaric Design Collective
http://AgaricDesign.com - "Open Source Web Development"
benjamin, agaric
This module presents a huge
I'm a bit unclear what is the focus of the project. Is it a drag/drop interface? Easy way to upload files? Improved File MIME handling? Publishing/Subscribing to content from multiple sites? A way to make playlists? How will this integrate with existing media modules for drupal?
Also consider that perhaps such a large scale module might make more sense as a bundle of pre-configured contrib modules that are organized as an installation profile.
Regardless, I think focusing on one topic and laser-beaming on a solution will help others understand your project immensely.
It looks like a really
It looks like a really interesting but complex project. I just can encourage you to keep on working and offer to be a good beta tester.
Good luck.