The future of the asset module

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
wmostrey's picture

I've been doing some thinking about the future of the asset module. First of all, I'm completely dedicated to bringing it to Drupal 6 and beyond. What is not sure however is in which form it will move forward. With the improved hook_form and specifically with filefield and emfield tying into the youtube api, flvmediaplayer, the new media player et al, I certainly don't want to duplicate efforts. The asset module itself is quite a big project and maintaining it requires a lot of my time.

That's why I've been thinking lately of stripping the asset module down to the asset wizard: leaving the uploading of files to the *field modules (having the admin decide which modules he prefers and what type of files he needs) and managing them with the asset wizard. The asset wizard could be taken so much further if it could get all the attention it deserves. One thing I could use help on is the interface from a usability perspective: both on the asset wizard itself and on how to tie it in the different fields (filefield, emfield, ...) and editors (TinyMCE, WYSIWYG, ...). Everything is welcome: from concepts and wireframes to mock-ups and patches.

How do you want to handle the files and embedded media that have been already been imported by media mover, uploaded by filefield or integrated by emfield?

Comments

I like your idea, I think

wishstik's picture

I like your idea, I think it's an honest solution. I'll look into the UI and see what I can come up with.

My thoughts

Michelle's picture

Now that I finally have it working (thanks!) I'm attempting to actually use it. Here are initial thoughts:

  • "Insert assets" is no good for end users. "Add media" would be a little friendlier. Better yet is to make it integratable into editor buttons. I'm using bueditor and it has an add image button that's customizable.
  • Using imagecache to size it is nice but making a thumbnail doesn't do much good if it's not linked. I'd like to see an option to choose the thumbnail preset and the regular preset and have asset do all the scripting needed so you can click and have a larger image popup with *box.
  • I really liked the asset 2 UI. Unfortunately, I don't remember specifics about what I liked when I tried it briefly some time ago. I just remember thinking it was tons better than the UI for 1.
  • I like the idea of tying it in with *field. I think, though I'm not positive, that imagefield is getting replaced at some point with filefield. So that gets rid of the problem of imagefield only handling images.
  • Choosing directories is overkill for most users. IIRC, you can set it so regular users can't create directories but they still get the same UI. I'd like to see normal users presented with a simple UI that shows all the stuff they have and gives options to add more.

In general, I really like the idea of asset. Having a central repository of media so that you can use an image in your gallery and then put it in a forum post or an article is really nice. It also makes it easier to enforce a per user quota. Then there's the advantage of having one UI for all media on the site, which helps a lot with usability. So I'm glad to see this will be moving into D6.

Michelle


See my Drupal articles and tutorials or come check out the Coulee Region

Asset as UI

arthurf's picture

Wim-

What I really love about asset is that it provides a reasonable UI for a complicated task. I like that it integrates with tinymce, and that it's extensible so that other modules can make use of it. I'd love it if there was a final hook that was fired after media was selected and a fomater was selected. This would allow post processing (ahem, media mover) to run as part of the asset upload process. As it stands, I think I'm going to give writing a formater that will do the processing on the fly (ala image cache) a try. Anyway, the larger point being that I think asset should concentrate on being a UI and having a good set of hooks to allow other modules to jump in the fray. I'd help trying to integrate in some of the cck *_field modules so that asset can just utilize those rather than having it's own set of tools. This would help make migration easier as well as keeping the code base cleaner.

I really think we should do a media sprint some time this fall- would you have any interest in scheduling some time to do that?

a.


http://24b6.net

More and better hook_s and theme_s

wmostrey's picture

Thanks for your input Arthur. It is indeed my intention to integrate with more _field modules (especially filefield and emfield) and to provide more and better hook_s and especially theme_s. My plan is to concentrate on the asset wizard (the gui) and leave as much as possible over to the specific modules. David for instance is working on jQuery Media integration, that's just awesome!

It would be great to do a follow-up media sprint and perhaps get aaron, dopry and/or drewish on board.

Media Mover as a formater

arthurf's picture

I've been doing some work to get Media Mover to operate as a formater for Asset- all of the backend stuff is tied in (you can select a Media Mover configuration as an asset formater, and on hook_asset_formater($op = 'options'), I check for the existence of a converted file or just create one with the Media Mover configuration. Now the hitch is getting formating options for the new file to sync up with the formating options that this new file would have via the asset module. It's somewhat of a special case- I'm not sure what the best approach would be here. Any thoughts? Oh, code is in cvs, see media_mover/contrib/mm_asset

thanks!

arthur


http://24b6.net

Functional with FLVMediaPlayer

arthurf's picture

For Media Mover configurations that are producing FLV (and potentially mp3 and h264 content), I did some fast integration with the FLVMediaPlayer module that lets you upload via Assset, select the Media Mover configuration to process the asset with, and display it in a FLVMediaPlayer profile. Should provide a reasonable interface for people who want to transcode directly through asset.

I'll post a screen cast shortly.


http://24b6.net

Media Mover + Asset

arthurf's picture

Ok, I put together I screen cast for how this works. Ironically the piece that actually shows Media Mover working with Asset is really quite short, but the background maybe interesting to people. Some additional information and the screen cast is here: http://www.24b6.net/2008/09/13/media-mover-hearts-asset


http://24b6.net

This rocks!

wmostrey's picture

Arthur, wow! I'll be taking a good look at this. This is a fantastic way to bring the asset/media_mover integration to a new level. If you need any help on this or if you have any comments on the APIs, just let me know.

Code sprint

cirotix's picture

Hi Wim,

that is a very good piece of news. I have a question on the schedule for the D6 integration.
I am going to launch the development of a new website for a client and I am planning to use D6 for this projet. This is going to be our first D6 website. I will of course use asset of it as I think that it is the media manager on the Drupal place.
After the conception period, the project happened to be simpler than the orignial client requirement. However I have already allocated ressources to the project for the next month and the half, so I think that part of this ressources could be used to help to the D6 port.

So I have 2 questions :

  • what is the big plan for D6 port :
    1. bring asset1 as it is to D6, with constant feature/architecture and then start an new asset2 branche that would bring back some features of the old asset2 + do the new architecture (mainly GUI, media management let to external modules)
    2. work directly on a new version of asset for D6, with the new features etc

    As much as I like to have a new version of asset with a better UI (that is true that the old asset2 UI is fare better than the one of asset1), for my point of view (getting a project in testing at mid-november and live in mid-december) the solution of feature constant port of asset1 to D6 seems much quicker. If you are going for solution 2, I think that we will solution 1 by ourself and submitt it to the issue queue.

  • how do you plan to organize the port. As I have already said, I can dedicate some ressources to help to the port. Tell me if you are interested and how and when you plan to work on it.

damien

Damien Cirotteau
http://www.rue89.com

Hi Damien, thanks so much

wmostrey's picture

Hi Damien, thanks so much for your interest in the project. This is the current plan: get RC2 out of the door, it includes support for imagecache2 and lightbox2 and it's also ready for TinyMCE3. This will most likely hit next week as I'm still waiting for confirmation on 2 remaining bugs. I'm pretty sure they're fixed but I'd like to get confirmation from the reporters. I'm not expecting an RC3 so in a week or 2 we should see Asset 1.0 launched!

So since 1.0 will not have a lot of code changed from the current dev version, work on the Drupal 6 port can already start. My suggestion would be to start with the main asset.module and the wizard, those will be the two hardest parts to upgrade. If you have resources available the coming few weeks, you are more than free to start work on that. You can contact me directly if you have any questions or if you run into some issues during the upgrade. Thanks so much for jumping on this!

Port started

cirotix's picture

Hi Wim,

I just want to let you know that we have already started the D6 port. A testing version should be available next week.
Stay tuned !


Damien Cirotteau
http://www.rue89.com

Hi, What about your testing

Florent Jousseaume's picture

Hi,

What about your testing version ?

I'm very interested for this port on D6 :-)

Florent,

Comparison?

sun's picture

What I would like to see is a comparison to other Drupal modules that provide similar features. Me, for example, is the maintainer of Image Assist, Wysiwyg and Inline (API) modules, and I have looked at asset* modules a few times now, but I still do not understand the key differences as well as the paradigm behind those modules.

So, if you're asking to move forward, the goal of moving forward is most likely to move something into core in the long run. However, for that to happen, we need a broad consensus about the added features.

I really think we are working in the same area, but unfortunately, there has not been any effort yet to join forces to come up with something rock-solid that might be included in core. I'd like to change this, as soon as possible, because almost any other CMS provides much better built-in image/inline/media handling. :)

Daniel F. Kudwien
unleashed mind

Daniel F. Kudwien
netzstrategen

Will image module be included in core?

markus_petrux's picture

(sorry if I missed this somewhere else)

Asset does all

wmostrey's picture

The key difference over other modules is that the asset module handles all types of files, in any situation. It has a wizard which allows you to upload files, manage them and re-use them. You can use it in a plain textarea, integrate it with TinyMCE (and hopefully other wysiwygs as well in the future) or use a single- or multi-value cck field. Add images with lightbox and imagecache support, add videos with flash video playback, add mp3s and play them with the 1pixelout player, import all your youtube videos at once, and link to any document that it doesn't recognize. The integration with Media Mover really makes it powerful: you can record a video with your mobile phone, mail it to the server, have media_mover transcode it to flash and put it online as an asset node.

What I'm not looking for is more focus, maintaining the module is a time consuming effort. I would like to have filefield and emfield handle the insert of local and external media for instance, or have jQuery Media handle all the output. The core of the asset module remains the asset wizard.

Key difference?

sun's picture

Dunno, whether this is still the case, but the last time I tried Asset, the key difference to Asset was that Asset is directly accessing the file system (like IMCE, another candidate), while Image Assist was (and still is) implementing the paradigm that each content (here: images) is stored with a reference in the database (via Image module) and also being tracked in a reference table (telling which image is used where).

Please correct me if I'm wrong.

Daniel F. Kudwien
unleashed mind

Daniel F. Kudwien
netzstrategen

Initial response to sun's request

HansBKK's picture

From my cursory research, it appears Asset's file handling does use both Drupal core's files table and its own file tracking tables, not at all like IMCE.

From the users' POV, no matter what method in the various Asset workflows used to get the file uploaded as an Asset, it is then available by any other method - e.g. embed an inline tag in a node's content, later on reference it in a CCK field.

The file browser interface could use some improvement from my POV, it assumes you want to track all Assets by user, but this just means a few more clicks of work, NBD.

I've posted feature request issues to both Image Assist and Asset to propose some integration between Asset and Image module, via your Image Assist:

http://drupal.org/node/319370
http://drupal.org/node/319374

IMO Asset has the potential to become Drupal's image-handling's holy grail, or at least a good transition step until we get something in core. Its CCK/Views integration still needs to catch up with Imagefield a bit, but the biggest step forward IMO would be support for Image nodes as well as its own (non-node) Asset files.

If readers agree please +1 these issues, or if not, at least contribute your thoughts here or there.

Thanks

Core, responsibilies, and momentum

arthurf's picture

Sun-

I think you bring up a valuable point- there are modules that are doing things that are similar to what Asset is trying to, so why Asset? From my perspective, the compelling thing about Asset is that it is for the most part content agnostic. Image Assist is great, but it creates a single interface for the user for images, but if the user wants do insert audio, embedded content, or video, there is a different interface. What I like about Asset is that it just makes an argument for the interface. It seems to me that Image Assist could be integrated with Asset to provide consistency of interface and the additional functionality that Image Assist provides.

I also think that it would be interesting if Asset relied on Inline for its square bracket notation support. This could help Asset focus on the interface, while letting Inline hold down filtering obligations.

As per the question of core.... while it would be great to get better media handling into core, I think we as a group of module maintainers working on rich media need to really get together and try to clear out some of the cruft and have an agreed upon strategy for what kinds of code we can share. I think we're starting to move in that direction, but I'd really like to see us all communicating better about the code we're developing and trying to reuse code as much as possible. I think there are too many options for site admins to choose from that don't differentiate themselves well enough. Maybe we need a few options for adding images to posts, but let's be clear about why we have those options, and where ever possible, integrate them with existing solutions. I think that means fewer modules to maintain (ultimately) and clearer choices for end users.


http://24b6.net

Exactly.

sun's picture

I'm constantly focusing and working on splitting all those modules into more generic, re-usable parts that can be leveraged by other modules. Image Assist will depend on Inline API soon, so it will provide its wizard and Image integration only, leaving the macro-processing and rendering to Inline API. Inline will probably also take over tracking of embedded/inline contents, so this can be removed from Image Assist, too. Concurrently, Wysiwyg API gets more and more attention and I hope that Image Assist will be able to provide its wizard - without implementing editor-specific JavaScript - soon to all client-side editors that Wysiwyg API supports.

Regarding Asset module, I really like its name, because it clearly states the module's purpose. Since I already thought about turning "Image Assist" into a general purpose "Assist" module, I could even imagine Image Assist leveraging Asset (Wizard)'s API, which would totally make sense in the end. However, I feel that we really need to collaborate more on these topics and re-think existing ways to decrease confusion among end-users and focus on core enhancements in the long run.

Daniel F. Kudwien
unleashed mind

Daniel F. Kudwien
netzstrategen

I like it

Rob_Feature's picture

I just wanted to throw my support in for making Asset more of a helper wizard interface rather than a full blown solution. The more I use things like jQuery media or emfield, the less I use Asset for everything. I'd like the direction you propose, I think it jives with where Drupal is headed.

Just wanted to throw my 2 cents in to support this direction.

unification

cpelham's picture

I would love to have one interface through which I can add whatever media I need to add to a node. Sometimes I need to upload media files, and sometimes I need to link to media files hosted elsewhere. I would like to be able to do that through one interface, and perhaps even one cck field and and one set of css tags. It seems like that is the holy grail from the end user's perspective.


Christopher Pelham
Director
CRS (Center for Remembering & Sharing)
http://www.crsny.org

CRS (Center for Remembering & Sharing) is an arts & healing center located just south of Union Square in Manhattan.

Let's imagine for a moment

arthurf's picture

(Disclaimer: I haven't explored the new file API for D7 at all, so please forgive me)

Let's imagine for a moment a world of Drupal rich media that works seamlessly for users. Any kind of file is uploaded through the same interface and can be processed and displayed based on mime type.

What might this look like?

Hijack the Drupal file attachments form. Drupal form is completely removed where it is enabled and replaced by... let's call it RMFB (rich media file browser, but you can make up your own name). No more drupal file upload form, and probably we want to hide any CCK file/embed fields (more on this below).

The user clicks on the "add file content" (or something) link. This pops up the new and improved with 100% more awesome 2.0 GUI. User can add embedded content, or upload a file. User is presented with formatting options based on MIME (if admin has allowed). Data is stored in appropriate places.

Here, we create plugins for all of the rich media solutions that we have- embedded filters, image, imagecache, audio, video, etc. There is also a display option for each of these items so that complicated formats can get appropriate treatment (think flash video for example). Again, this should be either enabled by an admin, or preselected for the user.

The final piece is the placement question. How do we know where to put this stuff in a node? Potentially, we have various CCK fields, node body, and maybe some other places I haven't thought of. Here, we build a list of enabled fields in the node (that the admin has selected) and allow the user to place content there, or simply hide the choices all together for the end user, depending on the admin's need.

Obviously what I'm describing here is the GUI layer on top of some pretty complicated file handling stuff. However, with some refinements to Asset's API, we could start getting pretty close. I think it would require some close collaboration between module maintainers, however, done right, we could build a plugable architecture that doesn't bind a site admin to single solutions. And this I think is the really important thing- content doesn't get stuck if a module maintainer stops development. This was one concern I had with media mover, so I set up a system that can go and reprocess original media- you want higher bandwidth .mov files, just create a new configuration and let cron run. Likewise, I think this kind of file system has to respect original media and allow redeployment to the degree that it is possible.

The process might look something like:
* file is uploaded and stored
* choices are made in GUI
* file is processed into new files accordingly
* RMFB has pointers to the original file and processed file
* additional formatting is done
* new content is inserted

Obviously this is not so different than how Asset functions now- what would be different is that we work to create plugins for RMFB that allow us to pull this off, and some refinements to the GUI in appropriate places. And that's really the reality- we have some great solutions already, but they would kick so much more butt if they were integrated.


http://24b6.net

Other notes, forgive if some

HansBKK's picture

Other notes, forgive if some points duplicated and I'm sure I left some out :)

The same browser interface should be used whether

  • uploading new files to the site from the user's local filesystem
  • uploading new files to the site from a URL
  • embedding a file from another site via a block of code
  • just pointing to (not uploading) existing files elsewhere on the web via URL
  • pointing to existing files already on the site

The browser should allow the user to

  • preview an image thumbnail or equivalent sampling for other media
  • filter based on taxonomy when looking for files already associated with nodes on the site
  • place the file anywhere in the filesystem tree permissions allow, including creating new folders
  • batch upload files via zip file and/or whole folders

The browser should support

  • creating a single node per attached file, assigning a (possibly new) taxonomy term to all the nodes in the batch
  • creating traditional Image nodes or CCK fields
  • for CCK fields, choosing to upload the batch all referenced by the one node, or separate ones as above
  • creation of a batch of inline macro tags with user-selected default values (easily changed per-file afterwards)

No we're not asking a lot here! And I didn't even touch on RTE/WYSYWIG editor support. . .

Preview & Upload Status

arthurf's picture

Hans-

I forgot preview in my post above- you are absolutely right that this is necessary. I also think that an optional upload status bar that shows progress of uploads and potentially conversion status (transcoding to flv for example) is important.

Your ideas for searching based on taxonomy are interesting- perhaps by user as well. Actually, perhaps we should borrow from Views and allow the RMFB admin to select which views can be used to find file content. This way sites can be configured in different ways without out us having to figure out all of the answers right now.

As per your last points about creating nodes, images or data into CCK- I think we should try to be careful here and follow the design patterns that Drupal is using- from what I understand, D7 will make files first class objects (somebody please correct me if I'm wrong)- however, this is not to say that different plugins could create new nodes based uploads, we just have to figure out how that interface works.

As per WYSIWYG support- inline does a fantastic job already in integrating with some WYSIWYG browsers, so if we agree that Inline is the default text insertion method, I think we are well on our way. Asset also has a plugin for TinyMCE.


http://24b6.net

Preview/conversion

HansBKK's picture

I personally prep my files beforehand, but since IMO the previewing will probably need to be done via plug-ins, that will also allow for conversion, maybe renaming - just thought of version control issues - handling same filename in same target folder - rename old, rename new or overwrite? I'm assuming the new files architecture will have revision control issues to be handled.

I'm not sure what "first class objects" means - Taxonomy AFAIK will continue to only apply to full nodes (e.g. you can't tag a user object right?), which is why I like the way Image handles image files, at least for those images that "deserve" such handling.

If you mean Inline module, as far as I know that only handles a node's displaying files that are actually directly attached to that node. I assume the future APIs sun is working on won't have that kind of limitation, but out of the currently available/stable methods, I like Asset's myself, don't have to upload multiple times to re-use the same image. I think the macro tag syntax is similar, and ideally they'd both be merged as I suggested in cross-posted issues referenced above.

The WYSIWYG support is low priority for me, just mentioned the issue for completeness - personally I'd love a module that just let me display an image via hand-typed inline macro tag referencing a files table record, even if I had to look up the fid myself! Just to avoid the current need to upload multiple instances of the same file. Wish I were a programmer. . .

Next Steps- Design, Lobby, and Sprint?

arthurf's picture

I don't think this conversation is done, however, it does seem like we are moving in a pretty interesting direction quite quickly. I'd personally like to set out what near term goals might be and if people are interested, plan a sprint where a group of interested developers can get together and start coding some of this out pretty quickly.

To move in that direction, here's what I think we need (please add your thoughts)
* define the API - we need to identify what hooks we will offer based on this conversation- perhaps use Asset's as the basis and extend it
* get buy in from as many rich media developers as we can. This will require doing some "lobbying" to convince people that this is a good direction to move in
* get support from people working on D7 file system changes to make sure any work that we are doing will be forward compatible
* identify the "core" of what this module will be and what it will support
* identify goals for the project of what it is and what it is not (ie: we don't want to replace Drupal's file system, we want to build a rich media handling system on top of it, etc)
* get support from development shops that this project would be valuable and supportable

If people are interested, I would try to help put together a sprint to do some of this work. Obviously, the more we can address some of the items above beforehand, the more successful the sprint could be. Are there any places that could host a few people, computers, and lots of media for a weekend?


http://24b6.net

Hi Arthur, we talked about

wmostrey's picture

Hi Arthur, we talked about such a meeting before and I definitely think we should go ahead with it. The people working on imagefield, filefield, emfield, asset, the D7 File API and all others interested getting together could bring some wonderful things for file management in Drupal 7.

I'm in!

Agreed

arthurf's picture

I absolutely think we need to try to get buy in from people who are working on media stuff and get us all together. I'm thinking about writing a proposal that includes the goals, api spec, and time line and passing it by Drupal shops and the Association to raise some money to bring people together. I'm thinking US East Coast is probably easiest to facilitate non North American folks. Probably New York, DC, or Boston, depending on where we can get space. I'm working on NYC right now. I think it would make sense to do early December or January.

I'd like to push for a first release along side of D7's release which is perhaps an extremely short schedule, but would be absolutely fantastic if we could pull it off. I do think it's plausible, especially if we can do ground work before hand.


http://24b6.net

Wow

eigentor's picture

Having been a fan of asset module, but being thrown off by trying to get it to work, I am very excited about your initative. I always liked the interface in general, but yes, the workflow could be much improved.

To get reviews and mockups, post your request here http://groups.drupal.org/node/15017 (and maybe make a post to announce it, since the wiki suffers from no mail in case of update to Group members). Usability Group is desperately trying to get organized... ;)

It would be so great if file handling could be unified and streamlined in Drupal, wow. If you do that Sprint, that would be great.

Life is a process

Life is a journey, not a destination

FileField Integration

quicksketch's picture

Hi Wim,

I recently became the maintainer for FileField and ImageField. I'm glad to see this initiative to integrate better with other modules. I've personally been anti-"all-in-one" modules because it's analogous to putting all your eggs in one basket. Please let me know if there's anything that FileField can do to help Asset become friendlier with other modules.

FileField already provides some helpful API functions that asset could benefit from, such as backports of D7's hook_file_references() and other hook_file_*() implementations. So you can manage when a file is attached to multiple nodes. I'm also working on patches to CCK that would allow FileField to be extended (more easily) with features like using a browser like IMCE or Asset's file browser, textfield auto-complete for existing files, or referencing of remote files. All this would be enabled by #417122: Allow drupal_alter() on Field and Widget Settings. You can already do all of these things, but the patch would allow individual modules to each complement each other and extend FileField, rather than each module extending FileField separately.

All in all, I'd love to see more integration with other modules. I'm sure asset's pure size makes maintenance extremely difficult, and it'd be great to see tasks provided by other modules leveraged instead of duplicated.

The backports of the PHP

aaron's picture

The backports of the PHP Stream Wrappers to the Media/Resource module will also go a long ways towards moving some of the file management API out as well.

Aaron Winborn
Drupal Multimedia (book, in October!)
AaronWinborn.com (blog)
Advomatic (work)

Aaron Winborn
Drupal Multimedia (my book, available now!)
AaronWinborn.com
Advomatic

General comments from the front lines

garywiz's picture

Interesting reading this thread, and I think it reflects a general tendency (which is a good Drupal community characteristic) of trying to tackle the big problems in a cohesive way. But, each type of media, specifically audio and video and images, have significantly different needs and I think that the modular approach with minimal redundancy, inter-module cooperation, and highly focused tasks is a good goal.

But, right now, it is a mess, specifically for video developers. We are in the middle of redesigning our site (treet.tv) and essentially we have tried most of the current modules and have just decided we need to build our own. I hate that. I prefer reuse. But, I thought it would be useful to share my thoughts. I realize I am talking about "video" below, and in some people's minds media should be generic. However, that very generic approach results in a lack of flexibility and power in specific media categories (like video) which inevitably result in hacks, cross-module dependencies, and the kind of frustrating rewrites we are going through now.

First, there are three basic needs that need to be compartmentalized in design thinking:
Problem 1: The need to easily embed 3rd-party videos (emfield has been headed here).
Problem 2: The need to easily store and manage video assets (filefield, et. al. are tackling this)
Problem 3: The need to display video with emphasis on presentation and usability (nobody is really tackling this well, even though many modules include such features almost as an after-thought, such as JW player integration, etc.)

Each of these needs to be separate. You can't have lightbox trying to embed videos and have JW Player appearing as an adjunct to other modules. That may satisfy those who just need an "extra video" feature for their site, and that's all well and good, but in terms of satisfying people who use video as a focus of their business, it doesn't cut it.

In terms of what features are needed in these three problem areas:

Problem 1 featureset: (third party embedding)
* Ease of use, point and click no-headache administration.
* Silent integration with workhorse modules like imagecache, filefield, etc.
* Well thought-out plugin design so that dozens or even hundreds of providers can be added.
* Focus on exploitation of the features and free services of many external providers to that sites can be easily enhanced.

I think emfield is right on target for this. We have been using it (with our own custom provider entry) for weeks now using a custom player we designed based upon flowplayer source code. It's very close to working, and our approach has been to consider our own service almost as an external one (we built a separate api external to drupal to manage video assets, embedding and viral distribution). But, thumbnail management is completely lacking. Worse, integrating imagecache capabilities into emfield/emvideo is a nightmare because thumbnails are a per-provider capability. Trying to tweak or modify the emfield code to support proper thumbnail versatility for the many scenarios on our site proved such a hack that we had no confidence that we could merge in future versions of emfield, and there is no way we want a forked version.

Problem 2 featureset (asset management):
* Infinite mapping of an asset into sub-assets where the asset represents an instance of a creative work (such as a performance) and the sub-assets represent instances of various encoding formats, audio only tracks, closed-caption tracks, bitrate variations, protected HD download versions, etc. A single show we produce has a collection of about 9 different assets which represent the identical program to the viewer. Managing them separately is impossible, they need to be considered a unit.
* Extensible meta-data that can describe the top-level asset fully as well as mappings between the top-level asset and audience-specific (hearing impaired, international translations).
* Exposure of "packaged" presets (HD video, audio podcast) derived from the top-level asset that other modules (such as views, lightbox, etc.) can understand and work with.
* Storage plugins which range from local drupal storage (filefield) to SAN-based storage or storage systems custom-designed for a particular build or platform. In video, this is a must. It also isn't possible to take a "closed system" approach to storage, nor anticipate everybody's needs. So, robust plug-ins for storage are essential, along with mappings between asset records and remote or SAN-based storage paths or resource locators.
* XML-based feeds, such as RSS for providing asset information to third-parties. This is the place for this, and having RSS feeds derived from the many modules in Drupal that support video lacks the control and flexibility that an asset manager could provide.

Nobody comes close to this, and ultimately it becomes tempting to develop a complete information architecture using views and custom content types. But, this turns your drupal site into a nightmare for users and administrators, exposing myriads of irrelevant details of how assets are managed and related to one another.

Yet, creating a good foundation for asset management is, I believe, possible, without taking the over-designed approach vendors like Kaltura are taking. While the needs of asset management can't be ignored, and they are extensive, a small start could be possible focusing on the integration isssues first. Making sure the asset system is known and understood by all other drupal modules is essential, then refining and extending the internal management of assets comes next.

Problem 3 (display and user UI):
* Extensive support for Drupal's goodies. Views, lightbox, imagecache, etc. etc. This is where Drupal is really shining and every video provider wants to use all of these features, not just one or two of them. This delegates the responsibility for presentation fully to the many wondeful Drupal modules in development.
* Glue modules to create presentation forms of assets. Presentation forms (video players, audio players, image gallery browsers, video galleries, multi-track video editors) have specific requirements. While it's tempting to put these into the asset manager, it would be better if the asset manager exposed an api that glue modules could use reliability to present assets. For example, if lightbox wanted to present an asset, they should do so the same way as any other module without having to create hacky support for instances of particular players like JW or Flow.

Right now, many modules focus on this latter problem, and often add asset management features themselves in order to do so. This has provided some great short term value. But, as D7 and D8 come out, the range of such presentation and UI needs will grow significantly and the asset management needs to be separated.

I apologize for publishing such a "feature manifesto" and wish-list, but it based upon a lot of experience. While we are focused entirely on our internal development, at some point in the future once we get past some milestones we surely would be interested in contributing to such an effort as well.

Not everybody wants to be a full-service video provider, so I realize that our needs are not shared by the majority. But, I think it is an admirable goal to have a modular system which satisfies everybody, from those who want full control of video to those who want an occasional YouTube clip embedded and I hope my comments above provide useful in some small way at some point.


Australian Scuba Diver? Visit http://scubalot.com

File API

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week