As you all probably know by now, the first public release of TubeGuardian has shaken up the votebotting scene, but is this the final blow in what has been an epic battle of morality and reason versus closed minded bigotry and censorship? Not in the least! In this blog, I will introduce everyone to TubeGuardian, answer a few common questions, and explain why this software is only the first step in many to come in the war against freedom and expression.
So, what exactly is TubeGuardian, and how does one acquire and use it?
TubeGuardian is software designed to determine and counteract votebot attacks. It can be downloaded right here at the League of Reason. Instructions for use will be posted in the forum entry for this blog post. If you do not know what votebots are, please see CosmicSporks excellent series of blog posts on the topic here. There are three main functions that TubeGuardian executes: gathering statistical information on videos, determining whether a video is under attack, and quickly disabling ratings on videos it determines are under attack. Let’s take each of those functions one at a time and dig a little deeper into how they work.
1. Gathering statistical information.
By far, this is the most simple task that TubeGuardian performs because Google/YouTube have been kind enough to provide what is called an “API.” API means application programming interface, and that’s just fancy computer geekese for a set of functions that YouTube allows programmers to use through their special controlled interface (The Google/YouTube API is named GData API, and one can read about it in more detail here). A common question I get in this regard is: why does YouTube give out a means for collecting their valuable data? The answer to that question lies in the value of the data itself. In the absence of an officially sanctioned means of access (GData API) developers will find a different means for acquiring what information they desire. In the case of YouTube, the acquisition of data would come from a technique called “scraping.” Scraping is when an application loads a web page meant for a person, and “scrapes” the data that they are interested in off of the page. This is bad news for Google/YouTube because they have to pay for each and every byte they send you through the interwebs, and they pay a pretty penny to make sure that the average user has a great, lag free, experience with their website. Programs that “scrape” data do so at superhuman speeds, and they eat up the bandwidth Google/YouTube purchased with the intention of making real people happy with the service they provide. So, in short – Google provides their API so that programmers wont scrape data from their pages meant for real people. Furthermore, Stephanie Liu, a Google developer, stated in a correspondence with me:
Also, please don’t scrape — it’s against the ToS and makes kittens cry.
So, TubeGuardian happily complies with YouTube TOS in collecting data! Though, I still maintain, as stated to Ms. Liu that: “I appreciate it; however, I hate kittens.”
I’m a dog guy *shrugs*.
2. Determining when a video is being attacked.
The second task entrusted to TubeGuardian is probably the most important to the end user, and is by far the most controversial aspect of the application. Many have asked: can’t this be used to illegitimately keep ones ratings high? I’ll save that discussion for another blog post; for now, I shall concentrate only on what is instead of what might be. TubeGuardian currently only uses one method for detection pending some better tests and results with further methodology. The basic premise of the detection is that votebot attacks will represent statistical outliers in the full data-set of ratings for a video. The program accomplishes this by looking at ratings as they come in, and determining what the average new rating for a video is during any given time period. We must take an average because, in most cases, updates to ratings received and the current average ratings come separately. TubeGuardian might see 10 ratings come in before it sees the actual average rating for a video update. This leaves us no mathematical means for determining what each individual rating was, instead we must determine what the average was over all of the ratings received between updates to the overall rating. Confused? Me too! Here is some of the math behind this process:
A = Initial average rating
A = Updated average rating
N = Initial number of ratings
N = Updated number of ratings
Given these variable, the Average New Rating for this interval would be:
( A*N – A*N ) / ( N – N )
I’ll leave it to the mathletes out there to reason out how this works, but for everyone else just trust me on this one :). The main complaint with this methodology, and the reason for the limited controversy surrounding possible abuse of the application is that TubeGuardian does not automatically determine what range of ratings would be considered statistical outliers. That determination is left up to the user by allowing them to set both the interval of votes the program will look at, and the minimum average new rating the user expects to see. Again, I will discuss the issue of potential abuse in another blog post: stay tuned. For now, let’s take a quick look at what an attack looks like to TubeGuardian as opposed to regular data:
3. Quick disabling of video ratings.
This function is rather self explanatory, but I must take a moment to highlight this functionality because it is this part of the program that makes releasing source code dangerous. I believe, looking at the logs of votebot attacks, that most votebot developers are amateurs at best. If I had to risk a guess, I would say that they are only capable (in most cases) of having 2-5 accounts logged in, and acting, at the same time. Without going into detail, the original methodology for enabling/disabling videos that TubeGuardian used suffered the same sorts of limitations. These limitations were forced by the use of an embedded browser that has to do all of the normal things web browsers do: download a webpage’s source code (HTML), find all of the fancy multimedia that the HTML points to (no, the multimedia is NOT embedded within the HTML), and download and display all of the aforementioned multimedia. These tasks are quite resource intensive as anyone who has run multiple browsers can attest; as such, I decided in developing TubeGuardian to take this method to the next level by eliminating the browsers, and the need to take up unnecessary bandwidth and clock cycles. Achieving this task means that TubeGuardian is not limited in the same ways as the common votebot, and it also means that if the amateur morally challenged developers creating such software would gain immense capability by attaining the code TubeGuardian uses to accomplish the ability to disable ratings. Furthermore, the speed gains these developers would achieve would make feasible the idea of massively collecting YouTube account names and spamming YouTube message boxes. So, although what is known in the computer science world as “security by obscurity,” is widely frowned upon; in this case I see it as completely justified if only to slow the development of malicious software.
Now that you have a basic understanding of the functions that TubeGuardian performs, let’s move on to the big question: have we won? The short answer is no. Although TubeGuardian addresses one of the specific tools of censorship unscrupulous users employ, it will never be capable of removing the motivation and complete tool set available for stifling freedom. We must remember that there will always be legitimate claims that lead to censorship, and that this fact is inherent in the service that YouTube provides. The only true answer to censorship is an organized, unified, and active community continuously feeding the tree of freedom with the proverbial blood of those that wish to destroy it. We must continue in our efforts to come together under the common flag of free knowledge and continued progress in defending freedom. This is the purpose of the League of Reason, and this is our mantra: attempt to silence one, and all will rise in opposition!
Please be sure to visit the forum thread on for this blog post for specific instructions on how to setup and use TubeGuardian – proudly hosted right here at the League of Reason. You can also view a demonstration of the use of TubeGuardian right here!