Biringa.cat -v /dev/urandom | grep -i biringa
DamnVid 1.0 releasedPosted by Etienne Perot (admin (at) biringa (dot) com) on Saturday, April 18, 2009.
DamnVid


DamnVid 1.0 was released recently (You can download it at Google Code). In this endless-beta world, I guess it's rare to see software getting out of beta, but hey, DamnVid did!
I haven't talked about DamnVid on this blog yet. I guess I should, now that it's out there, no? Let's start by some history.

You see, there's a lot of video downloaders and converters out there. Some are free and online, like Vixy, Zamzar or YouConvertIt, but their quality is disgustingly low, or they add their own logo at the end of the video, etc. There's also a few "software" converters out there (Who hasn't seen these junk, often-malware-filled "free ipod converters", "free youtube downloaders"?), and although I wanted to cleanse this world of not-so-great converters. Although some of them are great (MediaCoder, Handbrake), they're mostly Windows-only, and they don't download videos, they just convert them.

From there, DamnVid was born. I aimed for it to be your be-all, end-all video downloader and converter, no intermediate, no compromises, good quality, etc. But mostly, cross-platform, open-source, dammit. From the name, you could suppose I was not really happy about the state of media downloading/converting, and you'd be half right. The name was also inspired after Damn NFO Viewer, a tool to view NFO file for those who don't know how to use Notepad.
It was also the occasion for me to try out what I had learned with Python, and its cross-platform-ness.

I already knew about FFmpeg, the command-line tool, swiss-army-knife of video conversion. It was awesome, and I've been using it from the command line for ages. I taught some friends how to use it too, but it seemed never to get into their heads. They weren't used to the command line, they wanted a simple GUI. Ease-of-use, right? Well, DamnVid attempts to fill this need too. So, yes, it is yet another of these countless FFmpeg GUIs. All of them have their shortcomings, and DamnVid has some, too, of course. You can't please everyone. DamnVid simply tries to suck less.

Enough about boring software history. Let's get to something more visual, screenshots. Yummy.
DamnVid's main window
DamnVid is cross-platform
DamnVid preferences
Shiny, no?
So what can DamnVid do, exactly?
  • Convert videos. Yes, really. Anything that FFmpeg can read, DamnVid can convert.
    FFmpeg is used in a lot of open-source projects like VLC. If VLC can read it, DamnVid can convert it.
  • Download videos. Yes, really, too! DamnVid supports a few dozens of video sites... Icons time!
  • blip.tv
  • Break.com
  • Canal+
  • CollegeHumor
  • Crunchyroll
  • Dailymotion
  • deviantART
  • The Escapist
  • Flickr
  • GameTrailers
  • Game Videos
  • Google Video
  • IGN Video
  • LiveVideo
  • Megavideo
  • Metacafe
  • MySpace Video
  • Newgrounds
  • Revver
  • TM-Tube
  • Veoh
  • Vimeo
  • WeGame
  • Youku
  • YouTube
(This list was auto-generated with Python, by the way. Just thought I'd mention it. I'm too lazy to make this list by hand)
  • But best of all, DamnVid can download and convert. At the same time. It converts while downloading. This makes the whole process much faster than most downloaders/converters do.
What's new in version 1.0?
  • Integrated YouTube search
  • Clipboard monitoring
  • New, fresher FFmpeg build behind everything
  • A whole bunch of new supported video websites.
  • Modularity.
This last one is important. DamnVid is not only the first attempt making a cross-platform application with Python, it's also the first openly-extensible software I ever made. I also wrote a Module Development Guide for Python developers, developers, developers, developers out there. What is the advantage of using modules (or add-ons, or extensions, or whatever-you-wanna-call-them)?
  • Extensibility. This might seem obvious, but hey, it's awesome and cannot not be mentioned. Anyone can add functionality to the software without touching its base code. It "crowdsources" the whole development process. Isn't that what open-source is partially about, besides transparency?
  • Code cleanliness. Before modules, DamnVid only supported YouTube and Dailymotion, so it was (almost) reasonable to have those hardcoded into the whole thing, and release an update whenever one of them changed and broke DamnVid's ability to download videos from these sites. But as the number of supported sites grew, DamnVid's "breakability" increased and the code got cluttered up. Modules solved everything: No code clutter, separate updates, separate configuration, installing/uninstalling ability.
To get modules implemented correctly, you need a solid spec to go with it. My past experiences in creating Greasemonkey scripts and Firefox extensions taught me a little about the do's and dont's of modules, and with the help of my fellow friend Palmer, I came up with what I deem to be a pretty decent and simple spec, albeit with some naming contradictions. More on this is available DamnVid's Module Development Guide. Palmer even coded part one of DamnVid's modules, the one for The Escapist (and Zero Punctuation!).

So that's pretty much it about modules. Why not code up your own?

All in all, DamnVid was (is! it's not over yet) a good learning experience. It taught me about Python, its numerous GUI toolkits (DamnVid is built using wxPython) and their quirks (sizers, for wxPython, but they work once you get the hang of it), modularity, cross-platform code, but it also taught me a lot about the different ways to compile stuff from source on different operating systems, how to link libraries (static or shared), etc. It also taught me about a few protocols I never knew about (RTMP, RTSP, AMF) on top of HTTP (over which most Flash videos are still served nowadays), and about packet analysis with Wireshark, Flash "decompilation", reverse-engineering hashing algorithms, etc. There's much more knowledge I've acquired thanks to DamnVid than one could at first imagine.
After all this rambling... Why not actually download DamnVid and take it for a spin? You won't regret it. If you do, express your criticism in the comments. It is always appreciated (although bug fixes and feature suggestions should be posted in the Google Code issues list instead).

#1: Posted by Palmer on Sunday, April 19, 2009.
Woo for new version of DamnVid and it's nifty new module system :D
And yay for me getting mentioned ^_^
Reply

:DamnVid 1.0 released
:Please select an authentication method.

:: :

:
HTML tags allowed: <a href="stuff" title="stuff">, <strong title="stuff">, <em title="stuff">, <blockquote>, <br>, <hr>.