Commited Download Queue To SVN. Still Unstable!

I went ahead and committed the new code to the repository. There is a bit of a glitch that I will try to work out in the near future. Also fixed the Makefile to statically link libopenveoh into vget. This fixes the Makefile.

What is the glitch?

When the locked process is writing to the database (namely writing the resume information) the secondary process will NOT queue the download. It will tell you it is queued but running a “SELECT * FROM downloadqueue” on the db shows no entries. You must wait until the “Accessing Video” stage is complete before queuing up new downloads. Ideally we need to lock the database operation until it is available for the secondary process to write to it.

Other news that may sadden you…

Today I hired on with a San Diego-based development company whom I met through Ted Dunning of Veoh. I will be working full-time developing solutions with them which means my openVeoh development time will be greatly cut. I will still continue to develop openVeoh, however, new features may be a bit slower to come by.

Inside Information On New Features….

So I decided that we need a way to handle multiple downloads without me having to dive into threads right now. I came up with a solution. The solution is both a good thing and a bad thing but I made a work-around for the braver people who find it to be a bad thing. The first part of the solutions is in a sense a process lock on the client. When you run vget it will check to see if the process is locked in the database. It does this with a “LockId” entry. If the process is not locked then it will lock it and start a download. When you run vget again with a new URL it will see that the process is locked and stick the permalinkId in a queue table and exit. When the process that is doing the downloading is finished with it’s current download it will check the queue table and start downloading the videos it finds in the table. Once it is completely finished with downloads it will then unlock the process and exit. For those who have good luck with multiple instances of vget running at the same time. You can call “vget unlock” to unlock the process and start vget with a new download. Personally I find vget to get a bit unstable at times when you have more than one instance running at a time so I recommend letting the download queue do it’s thing. I may add more command line arguments for starting vget in a no locking mode and for unlocking+downloading and such but for now. I will go ahead and say, leave the locking mechanism alone and be patient.

New code is NOT in SVN

Since this is a really experimental feature I’m not updating the SVN with it until I’m happy with it. Not to mention for some stupid reason the Makefile for vget is broken. I’m back to using ./build to test. The Makefile is complaining about undefined references to to the three new lock handling functions. Anyways, it is almost 6am and I need to get to sleep. I will let you guys know when I release this new code.

What is to come after this is released?

After I finish the download queue I will put checks in the code to prevent duplicate downloads. I have been planning on doing this for some time but just haven’t gotten around to it. This code will be really quick and easy to add so you can expect it pretty soon.

Makefiles Finally Added, Build Scripts Removed

I finally got around to adding Makefiles to build, install, uninstall, and all of that good stuff. I have tested them out and they work great. The build scripts have been removed. I guess I could have put them in the attic but oh well. We don’t need them anymore regardless. I wrote a nice little HOW-TO for building and using openVeoh which you can find by looking at the navigation panel on your left or by clicking here. I recommend reading it to learn everything you need to know about openVeoh usage.

Join Me On IRC To Talk About openVeoh

You can join me on irc.freenode.net in #openveoh if you would like to speak with me about openVeoh, software development, Linux, Solaris or anything in general. I like talking to people and collaborating ideas and opinions!

I Said I Would Get Back To You!

Okay so here is the deal. I quit being lazy and added something that you will all enjoy. The protocol handlers are now added to Firefox for you when you install the plugin.

VGet is now installed when you run ./build

When you run ./build in the vget directory it is installed to $HOME/bin

Added a script called ffvget

I wrote a script called ffvget that launches vget in an Xterm, this is also installed to $HOME/bin.  This is required for Firefox to launch vget.

Modified plugin build script to install protocol handlers

When you navigate to “openveoh/src/mozilla/plugin” and run ./build it will compile the plugin, install it to ~/.mozilla/plugins and it will add the protocol hanlders to Firefox. Please note that THIS WILL KILL ANY RUNNING INSTANCES OF FIREFOX. This really isn’t too much of a big deal since most newer versions of Firefox will restore your previous session when you open it back.

You can now click the download links on veoh.com

After you run ./build for both vget and the plugin you can use the “Download Video” links on veoh.com and your download will launch in a nice little Xterm.

There are some problems

VGet will only download one video at a time and you can only have one vget running at a time. I haven’t gotten around to fixing this yet but I will as soon as I can.

If you have more than one Firefox profile for your user then it will most likely fail. I haven’t tested this yet but the way I grab the profile directory is really quick and dirty. The same applies to having vget auto-login using the browser. If you are not logged in using the default profile then it won’t grab your login. This should not affect most users but if you have a problem or a solution then let me know.

Code In New Repository

As of now I will no longer maintain the veohlin repository. If you want the new code you must use the new repository at:

svn co https://openveoh.svn.sourceforge.net/svnroot/openveoh openveoh

Please be sure to remove the old sources before checking out the new ones.

Why do we want the new sources?

You want the new sources because there are always fun new bug fixes. In this particular  case the password echo in vget is fixed. Also, you can build the Firefox plugin without having to download the gecko-sdk. I included the sdk with the sources to make life easier for you guys and I updated the plugin build script to allow the plugin to build out-of-the-box. Just run build and it works. It also installs the plugin for you. However, you MUST add the protocol handlers yourself.

Why don’t you add the protocol handlers for us?

Good question. I may add that pretty soon since there is no logical reason I can’t add it for you guys. Let me get back to you in a few minutes…

Six Days Since A New Post

So, you guys may have noticed that I haven’t posted anything for a while. Well, my internet died and it took me a while to get it back up. Everything is back up and running now and I can get back to work.

Anything new?

Of course there’s new stuff. I added a new function to VeohSystem which allows us to turn the echo on and off so that we can securely type in our veoh passwords in vget. I played with the mozilla sources and created a standalone build of libreg so that maybe someday we can grab login information from seamonkey/mozilla/netscape. I’ve registered a new project on sourceforge so that we can leave the veohlin name behind. I’ve included sqlite, libreg and the gecko-sdk in the openVeoh sources. I fixed the echo on vget and I’ve read lots of comments and emailed a lot of enthusiastic users.

New code not in svn?

Nope, the new code is not in the svn repository. This is because I broke my repository when I was doing some cleaning. This is not a big deal though since we are moving to a new repository. After I finish tidying up the code and get it imported I will post an update and get you guys on your merry little Veoh adventure!

A Strange Problem….

I am not sure if this is a problem with openVeoh, openSUSE, my flash drive or the other computer I was on but I had the strangest thing happen to me today. I copied a video (roughly 1.5 hours long) that I downloaded with vget to a flash drive and took it to a friends house today. I have watched the video on my computer and there were no problems with it using VLC. I copied it from the flash drive to the friend’s computer (WinXP Pro) and attempted to open it with WMP 10 and got a video error message. I downloaded all the usual codecs and tried again with the same error. I downloaded and installed VLC and attempted to open the video and received and error about the video being corrupted and was given the option to repair it. I chose to repair and after a few minutes the video started playing but there was only 45 minutes of video. I am a bit floored by this as I have no problems playing videos downloaded with vget on my machine. If anyone else experiences this when trying to play vget downloaded videos on Windows. Please let me know. I would like to know if the problem is on my part.

VeohBrowser implemented in openVeoh

I made all the needed changes and openVeoh will now check the browser before requesting a login from the user. I tried it out and it seems to work very well. Let me know if you have any problems. Updated code in SVN.

Nifty New Classes Added

I have added two new classes that are pretty cool. The first one is required for the second one to work. The first is VeohBase64 and it encodes and decodes Base64 hashes. Why do we need to be able to do this? The second class is VeohBrowser and it deals with web browsers. At the time only Firefox is supported but that is really the most important browser on Earth so it is not really a big deal. Anyways, VeohBrowser does exactly one thing right now. It checks to see if you are logged in to veoh.com via a web browser and if you are then it can return the cookie and username of your login and allow openVeoh to automatically log you in accordingly.

Do we get a test application?

Yes, I have not yet included the VeohBrowser features into the framework yet but there is a proof-of-concept application available in the vget directory. I don’t know why I put it there but when you run the build script it will build FirefoxTest along with Vget to demonstrate the use of VeohBrowser. I will be adding it into the framework soon enough. Updated code is in SVN.