Downloading My First Video!!!!

As I am writing this, my first video is downloading using the openVeoh framework! I got really sloppy towards the end but I wanted to get a proof-of-concept written. The thumbnails download and the pieces download! Video information is retrieved and dealt with. The only thing I haven’t written is the code to put the pieces together. I’m willing to bet that will be very easy though. I am excited as hell because I have been waiting for this for a while now. I will let you all know how it turns out. I haven’t put the code in SVN yet simply because I’m playing with it right now. Again, I will let you know when the code is up.

How are you downloading it?

Our old friend ‘login’ has been updated to download videos. Login is more our less our awesome tweaked out version of vget these days.

How sloppy did you get?

I got pretty sloppy. There is no form of organization and there is no resume support or any of that. Just a straight-shot download. This code can be extended upon to add all of the bells and whistles later. Also I still lack one class for type conversions so the pieces are named in the most awful way possible. There is no way to tell what order they belong in. This is pretty much caused by my lack of having written the type conversion class. I also haven’t gotten around to adding any code to create directories for holding everything. I need to do that really soon.

Killed Bug in Login

I wasn’t going to fix it tonight but it was really bugging me. The way I fixed it will not help me in the other socket classes at all but it was specifically aimed at the Login class. It quits receiving data after it gets the header. This is all we need to login. This makes the login a lot faster. There is no more waiting for it to grab all of the HTML of the login page. Instead, we get only what we need and check it. We now log in, in about half the time as before.  Now I will need to find a more generic fix for the other classes.

Login is Successful Yet Once Again

To wrap up my night I worked on VeohLoginSocket and added the parser code which finds the needed information to return to ClientActions to determine whether or not we have successfully logged in. As always I put it through the test and it stood up very well under it[*]. This also fixed the rest of the User session methods in the ClientActions class. Two more data parsers and a Download class and we should be able to start downloading pieces of videos.

[*] A Pesky Little Bug

I tested this and it worked but now there is a bug after changing absolutely nothing. If you give incorrect login information it will hang. Without sending a timeout to select there is really no way to exit our loop. As always I’m diligently working on it. I will probably fix it and update it tomorrow. It really is getting late…

Could MING be an answer?

MING is a library for creating Flash applications with language bindings for most popular languages. Not only that but it is also cross-platform. I read a nifty tutorial that shows how to use MING to create a media player for FLV videos. Hope to see exciting things from MING. But for now we are still dealing with the framework.

Flash Media Player

After my daily conversation with Ted I’ve decided that we need to be able to embed a Flash media player into the client for playing certain video files. Also need to look into linking with FFMpeg to convert .flv files into another playable format. I’m not sure about doing all this yet since we still need to get the basics. But again, this is going on the list of things to look into.

New Code’s First Compile!

Well it took a lot of effort and time, kinda, but anyway I went ahead and wrote a new build script for login that makes it successfully build again. Of course the sockets aren’t really ready to make use of it yet but the point is, it builds. It is no longer as simple as the previous build script as it has to compile every single source file and then link them in the end. Well, login hangs which sucks but I can fix that which is good.

What About `xml’?

I went ahead and included a line that builds the xml test when you run this build script. Saved me a lot of time to go ahead and use one script to build both tests. As always you can grab the code from SVN. Read the previous post to see how.

How do I try this new build script?

Make sure you have the latest code from the svn. Download C++ Sockets from http://www.alhem.net/Sockets/. Go ahead and build C++ Sockets and install them in the default location “/usr/local“. Navigate through the openVeoh source to “openveoh/src/tools/play” and run “./build“. That is all there is to it.

Some New Fun Stuff

Sparkie/DonutGuy and I crashed through a lot of fun stuff most of yesterday and all throughout the day, night, and morning. New Sockets have been implemented using the C++ Sockets library. This makes dealing with the sockets a lot easier in the end. Some exciting new classes are starting to appear in the code that allow us to use these sockets in a clean fashion. A bit of XML handling was added in a new VeohXML namespace. This makes creating XML using TinyXML a snap. A new test application called “xml” was added to demonstrate how to create XML with TinyXML. build scripts were updated. Login is now broken. And dreams are soaring higher than ever. With less than a week before my trip to Veoh’s offices in California I have a bit of work cut out for me. As always you can find the latest source code in my svn repository on SourceForge.net:

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

or from within the current source code

svn update

When can we download videos?

Hey! Trust me, I’m just as ready as you are to download videos. I see stuff on Veoh all the time that makes me say “I freakin’ want that!”. This really is a very long and complicated process. Not only do I have to create this beast, but I have to communicate back and forth with Veoh to make sure they like my ideas. I kinda feel bad that I took KVGet away from you guys before more people could get it, but It was a really logical step on my part. You have to ween people off of the old tools in order to push the new ones on them.

I Feel Like Being Nice!!!

Okay, I just had a sudden feeling of niceness. I’ll put KVGet back in the current repository. It does happen to make use of some code that I really need for openVeoh… Read above if you don’t know how to get the svn code. KVGet can be found under “openveoh/src/tools/kvget/”. As always you have to build it yourself unless you are on openSUSE.

New Code Finally in SVN

As I promised a while back I have finally put the new code in its entirety in the SVN repository. I may be moving it to Veoh’s repository pretty soon but for now we are still on SourceForge. You can check it out using:

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

or if you have the old code run the following from withing the source directory:

svn update

There is currently a bug in the ClientActions::getInfo function that I’m working to fix. Will keep you updated.

Future Plans, Just a thought.

So I couldn’t help but notice that there is no way (that I have found) to download DivX Stage6 videos with Linux. Maybe if openVeoh is a success we can expect to see a Stage6 client appear as well. Just a thought. I don’t really have to time to stop and look at it right now. But I am putting it on the list for later down the road.

XP Pro Disc Destroyed

So, I was reinstalling my virtual machines since my little “Let’s switch distros!!!” game and when I finally found the XP Pro disc it was destroyed. I am no longer able to test on XP until I get a new copy. Fortunately I found my 2000 Advanced Server disc for porting and testing with Windows. Still, it would ease my heart to test on XP. Well, just needed to complain about that.