YouTube Re-Player (Desktop)

The Motivation
“How to repeat the YouTube music video without pressing the Replay button every time when it ends?” Two years ago, there were many people asking this question in some IT forums. The answer was usually “Just download it and play it using FLV player”. That time, downloading seemed like the only way to play YouTube music videos in loop. Then there were some people asking “Is it legal to download YouTube videos?”.

After attending a Google workshop last year, I easily solved this problem. In January 2009, I successfully built YouTube Re-Player (Localhost) 1.0, my first application that used YouTube API. It not only could automatically loop the YouTube music videos, but also allowed the user to keep one’s own favourite videos in the database so that one was able to view it again later.

When I was doing the YouTube Re-Player project, there were many people around the world doing the similar things. Nowadays, you can easily find applications like Muziic, YouTube Repeat and some browser add-ons which do exactly the same thing: Auto replay YouTube videos and/or store them in database. I am quite happy that I am not alone. There are many people trying to do this as well.

From Web Application to Desktop Application
In this winter vacation, I tried to challenge myself again. I not only deployed my YouTube Re-Player on Windows Azure, but also developed a desktop version of it, known as YouTube Re-Player (Desktop).

YouTube Re-Player (Desktop)

YouTube Re-Player (Desktop)

Parallel Video Downloading
YouTube Re-Player (Desktop) is a desktop application.

Parallel Video Downloading

Parallel Video Downloading

Before playing the YouTube video, the player first needs to download the video from YouTube site. Depends on the speed of the Internet connection, it will sometimes take quite a long time to finish downloading the video. Hence, in the YouTube Re-Player (Desktop), there are five Flash Object Holders which are responsible for downloading and showing the YouTube videos running in the background. Each of them will download different YouTube videos. So, the user can first view the video which has been downloaded while he is waiting for other videos to be downloaded.

Quick Launch Bar

Quick Launch Bar

Thus, when all videos are completely downloaded, user can watch them without downloading them again until the sixth video is requested from the YouTube site. This will save a lot of time on just waiting the video to be downloaded.

Aero Glass Background
For those who are using Windows Vista, they should be quite familiar with the term “Aero Glass”. Since YouTube Re-Player (Desktop) is a WPF application, the Aero Glass effect can be easily done using C#. This feature is only available in Windows Vista and above. For those users who are using Windows XP, they will see a background similar to the one in YouTube Re-Player (Localhost).

After YouTube Re-Player is successfully built in last semester, I received many useful and interesting feedback from my friends. I will try my best to implement those useful features in the future versions of YouTube Re-Player.

Since the YouTube Re-Player (Localhost) was coded in PHP and JavaScript, developing YouTube Re-Player (Desktop) in C# is a bit painful. There are things that can be easily done in PHP and JS previously cannot be easily coded in C#, for example the database connection. However, that problem can be easily solved after googling. Secondly, embedding YouTube video in WPF application is not that easy.

The next step of this project will be finding a better way to manage the videos stored in the database. Also, searching feature will also be added to the next version. Besides, after I found a way to deploy the PHP, PhpMyAdmin and MySQL on Windows Azure Development Fabric, I think that I should try to deploy the YouTube Re-Player (Localhost) 2.1 on cloud as well.


One thought on “YouTube Re-Player (Desktop)

  1. Pingback: JBoss Workshop and My YouTube RePlayer | cuteprogramming

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s