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.

Percentages Finally Fixed!

I finally got around to fixing the percentages all together. I did significant bug fixes in the code which was messing up the output of the percentages. And also, the application now resumes from the last percentage it was on. It was resuming correctly before. Just wasn’t telling what percent it had already downloaded. This is now fixed thanks to a helping hand from Veoh. Updated code in SVN.

Download Percentages Basically Fixed

Well that only took me a couple of minutes to fix. I had a couple of variables in the wrong place and they weren’t being initialized with the right values. This is now fixed. Just need to figure out how I want to have the resume remember what percentage of the download we were previously on…

A Note About Resume Support

It will appear that vget hangs with the resume support but it does not. I just handled things in a dirty fashion and it takes forever to populate the table when you first start a download. It moves much faster when resuming the download since the table is populated. There is no output to indicate what is going on so it looks like nothing is happening. Also, I have no clue as to why the percentages don’t work any more. This is really a pain since I didn’t change anything that deals with them. I will try to have them fixed tomorrow.

Experimental Resume Support Added

I have managed to take a couple of hours of sweat and tears and add resume support to our code base. Using SQLite this didn’t take near as long as I had imagined and it does slow the application down some. But in the end it is all worth it. Take a look at how you can make use of this feature:

./vget http://www.veoh.com/videos/v722294rPRjEwyQ

Your video is downloading here and something goes terribly wrong and the application is terminated before the video finishes downloading.  All you need to do is simply give the same URL back to vget
.

./vget http://www.veoh.com/videos/v722294rPRjEwyQ

And just like magic your download will start exactly where you left off!!!!

Percentages?

Yea, it isn’t perfect. It does resume great as far as I know but it has no indication as to what percentage of the video has been downloaded. I will try to fix this as quick as possible. But people keep asking for resume support and I was really needing it myself. Thus it has been done!

Have you tested it?

I’m currently testing it as much as possible just to make sure. I have tons of debugging lines going on and I’m killing and restarting the hell out of videos. Also utilizing manual queries on the table just to make sure that things go right. So far I have not seen a repeat in any pieces being downloaded and the entries are disappearing in the correct order. If I find something wrong I will be sure to post all about it.

Current code is in SVN.

Flash Test Succeeds

After 3 hours of translating a PHP tutorial to C and debugging the hell out of things I managed to write a small test application that creates a streaming flash movie. Thus, we can almost dynamically create a player for openVeoh that will support things like…. The open guide! I was really surprised that this worked since I blindly created it. And I don’t have a clue about making it look like a player. Right now it is just a streaming video with no controls but oh well. We are a long way from needing this guy but it is there all the same. This test can be found in “src/tools/play/flash-test/”

Fun things tend to come with a dependency

In order to compile the flash.cpp you need MING installed. I will probably end up bundling this in the sources when we are ready to start dealing with flash on a regular basis. But for now. I will leave it up to the user to install it.