Community & Support

large video site - is drupal suitable?

Hi Forum,

I'm going to be building a large video site for an arts organisation which allows users to sign up for an account and stream live or archive videos.
In the past I've built my own CMS using php and mysql as this site is going to require a little more on the cms side I'm looking for something a little more robust than my php skills can handle so am looking to try and work out which cms will work best, at the moment I'm looking at drupal or plone.

I have no experience of using drupal so perhaps you can tell me if it is suitable for my needs. A few questions.......

The main thing the cms will need to handle is new user accounts, does drupal provide modules which will create a set of new pages for each user (blog, about, photos etc)?

The video streaming and archiving will all be handled by Flash, FMS, FFMpeg and a little php is there a way to embed various flash apps into each users page automatically?

How does Drupal output data, the design of the site will be css driven so I dont want lots of pesky tables appearing from the cms?

How flexible is Drupal in terms of intergrating it with other apps? As I said a lot of the site will be based on fms, if, for example, I'm saving videos through fms into a database can I generate content in Drupal from that database?

Can I design my site myself and then just use Drupal to create the content for specific pages (or divs etc)

Does Drupal sound up to the job? I'm not looking for a cms that can deal with the video but I do need it to be able to integrate with data from the video side of things.

Any advice would be most welcome.

Kind Regards

Jack

Comments

Yes Drupal can do it :)

does drupal provide modules which will create a set of new pages for each user (blog, about, photos etc)?

Yes. You may want to consider the Advanced Profile Kit module, which pairs up with either the Bio module or the Node Profile module to create one or more nodes for each user (Bio only makes one node per user and is simpler to understand, Node Profile can make multiple nodes per user as well as different nodes for users depending on what group/role they are a member of, and is more complex). It puts them all together very nicely for you using the Panels 2 module, and can also automatically draw in other various user data depending on a number of optional modules being installed. Here's a helpful comparison article on choosing the best profiles-as-nodes option for your needs. You can create per-user photo galleries using tools such as CCK and Views (an argument for the user name/ID on the view can display a given user's gallery).

is there a way to embed various flash apps into each users page automatically?

There are a number of video options for Drupal. Some of my favorites are Mediafield + Mediafield Display or the Media Mover module. I've also used FlashVideo module with success. There's also the old-fashioned Video module, which is a mega module with lots of functionality though less flexibility (most Drupal modules are moving away from this kind of all-in-one approach). I'm not experienced with integrating other video sources with Drupal outside of using video-related modules, but I have seen it done on various sites and according to a quote I heard by Earl Miles (Views module developer) in a recent interview on the Lullabot podcast, it is evidently not difficult to do. Here's one such example: http://myplay.com

I dont want lots of pesky tables appearing from the cms?

Drupal outputs standards-compliant XHTML and CSS, and none of core (to my knowledge) uses tables incorrectly. Your choice of contributed themes and modules however might use tables in its layout or added functionality, so check the code. Views module can produce tabular data as needed (tables aren't bad when used for their intended purpose).

Can I design my site myself and then just use Drupal to create the content for specific pages (or divs etc)

Absolutely. Drupal has an extensive and powerful theming system. Depending on the needs of a project I've made themes from the ground up, or using a base theme like Zen as a starting point to customize. Check out this free PDF chapter on Drupal theming from the "Pro Drupal Development" book. Also check out this post I made on my site with many Drupal learning resources. You can make Drupal look like just about anything you want, sky's the limit :) The theming in Drupal 6 versus 5 is even more powerful as well as easier (and augmented by the Firebug-like theming tool in the Devel module which you can download). I don't have experience using Drupal as "selectively" as it sounds like you might be considering (e.g. just calling in Drupal's functionality on certain pages of your own custom site)... I'd suggest you use Drupal to power the site as a whole, as it's quite competent for that, and embed your custom code into the flexible template files or directly into nodes and blocks as needed. However, if you do want to go the other route, I've read that by adding only a few simple lines to the top of your own files, Drupal can be bootstrapped and its full functionality is then available.

Hope this info helps. Good luck!

- David

Thanks

Hi David,

Thanks for all your helpful advice, its reassuring to find that there is a helpful community behind drupal.

A quick couple of questions, is there an api available for developing drupal modules? If there are any guides on starting to develop for drupal or any particular books you would recommend Id be really gratefull of your advice.

Thanks again

Jack

No prob :)

Hi Jack -

No problem, it's my pleasure to help :) Yes, the Drupal community is very passionate about Drupal and quite friendly (in my experience). If you haven't yet, I suggest also spending a bit of time in the Drupal IRC channels, as many experts hang out there and answer questions.

Though I've made substantially complex sites with Drupal, I've been able to do so myself with little to no server side programming (largely thanks to CCK and Views module, which again are absolutely must-haves). I'm more adept at design, UI, usability, XHTML/CSS, etc. So I do not have much experience with writing custom Drupal modules to share relevant tips about that. However I can share that Drupal has something called the hooks system which is an API that opens up a huge variety of spots during the course of executing a Drupal page where modules can "hook in" seamlessly to augment functionality. With Drupal hooks you can influence and change substantial functionality in a way that allows you to never "hack" Drupal's core files to get what you want (thus making future upgrades much less trouble). Compared to other content management systems, Drupal is literally a sort of PHP framework. There is a very very cool API documentation site here: http://api.drupal.org

Regarding recommended books, the one I have read and highly recommend is Pro Drupal Development, which was written by core Drupal developers and members of Lullabot (one of the top Drupal training and development companies). The current edition is for Drupal 5, however a new edition for 6 is coming. You can also buy a more affordable eBook version of the book at the link above. I have also heard great things about Learning Drupal 6 Module Development.

There are also a variety of modules to assist you with development:
http://www.lullabot.com/articles/module-in-a-box
http://drupal.org/project/module_builder
http://drupal.org/project/devel
http://drupal.org/project/coder
http://drupal.org/project/deploy
http://drupal.org/project/debug
http://drupal.org/project/druplet
http://drupal.org/project/forminspect
http://drupal.org/project/loadtest
http://drupal.org/project/menuscout (helps you find things in the admin menu quickly)
http://drupal.org/project/simplemenu (fast admin menu access speeds up development)
http://drupal.org/project/teleport (another alternative for fast admin access)
http://drupal.org/project/simpletest
http://drupal.org/project/trace
http://drupal.org/project/visualize_backtrace
http://drupal.org/project/drupalforfirebug (haven't tried this yet)
http://drupal.org/project/dbscripts (haven't tried this)
http://drupal.org/project/update_status (simplified version is in Drupal 6 core, module adds additional options... helps you stay on top of new module versions and security patches)
(I'm sure there are others as well I'm leaving out)

And of course there's a lot of great documentation here as well: http://drupal.org/contributors-guide

Another thing I forgot to mention regarding theming in my previous reply: if "properly" coded, Drupal modules are supposed to wrap all of their output in a "theme function", which you can override the output of in your own theme's template.php file. So if you find some pesky markup in a particular module, it is possible for you to fix it without hacking the module itself (if it has proper theme functions). Of course you can also supply your fixed markup to the developer of the module and he/she is likely to gladly accept it and add it to the next release of the module. You can also at times influence certain module behavior in this way, overriding whole themable functions from the module and adjusting them per your needs.

Good luck, and let me know if you have further questions. Hopefully some expert module developers can also give you some further insight on that.

- David