/tech home / projects / personal 'blog / about


ARCHIVE: Deep Linking, Hot Linking, and the TV-Links arrest

Sat. Oct 20th 2007, 03:43am:

"TV-Links (now dead) is a site which links to sites like Google Video and YouTube, which host clips of TV shows. Today, the Gloucestershire County Council, in association with a group called the FACT, raided the site’s servers and arrested the 26 year old man from Cheltenham who ran the site... This is what is known as Deep Linking (wikipedia article). There have been a few legal cases about this already in different parts of the world."
- by The New Freedom blog.

The author is confusing Deep Linking with Hot Linking. Deep Linking is when you link to a web page within a site other than the home or a major section page. Hot Linking is when you embed a resource from another site on to your own site without re-hosting the media yourself. Websites like reddit and Fark deep link. TV-Links was hot linking.

I'm completely in favor of deep linking except where someone is clearly abusing your content, say by linking to detailed search results on your site by spidering every form field value. I'm in favor of hot linking provided due credit is given and single-click link to the hosting server is provided. Flickr thumbnail galleries, most video embeds, JavaScript widgets from Google including Adwords are technically hot linked but they all link to the hosting site and give them full credit.

What TV-Links failed to do was link to the appropriate YouTube,, and Google Video pages for the FLVs (Flash videos) they were playing on their site, within their own custom Flash video player. Since Veoh has MD5 type hash in their FLV url, there is practically no way to find the web page for a given Veoh video via it's FLV url. It's not easy for average users to find the YouTube or Google Videos page for a given video within TV-Links either. Submitters would upload a "Seinfeld" episode to Veoh and title it "DFPGDSFY4353FG" to ensure nobody can ever find it on the hosted site in a search for "Seinfeld episodes." Then they would submit it to TV-Links and correctly title it "Seinfeld Season 3, Episode 6." Veoh and YouTube/Google Videos have enough on their hands already and since we don't have good video fingerprinting technology yet, these videos would never be found pro-actively and completely ignored by the hosts.

TV-Links could have easily placed the original Veoh/Google/YouTube embeds on their site but they chose to directly hot-linked the FLVs. They reason they did this is of course to prevent copyright owners from easily finding the source of the video because then they could just as easily click the "Copyright Claim" buttons.

Copyright is a complex issue and as someone that runs a video aggregator, I feel truly sorry for the TV-Links guy. The video sites and the copyright holders both stand to lose as a result of his site. Video sites incur bandwidth, storage, and compliance costs while copyright holders could experience lower DVD sales. Music is different from TV shows. We listen to the same song 30 times. How many times will you watch the same episode of 24?

I know there was a lot of wonderful content on TV-Links but I'd say a majority of it, while being older material, nevertheless violated the rights of the copyright holders. Only reason TV-Links became so popular is because most of the videos worked as they weren't deleted immediately due to the aforementioned reasons. Why did TV-Links stay up so long? I don't know. Personally, I'd like for TV-Links to come back but if it does, what message does it send to others? That as long as you upload content illegally on server A and link to it from server B, it's acceptable?

Additional notes: There isn't an easy technical fix for the video sites to prevent the hot links as Flash deals with embedded media in it's own way. Most browsers don't send the referrer when viewing embedded videos. So playing a video on sends the same headers to the FLV host server as watching it on TV-Links. Additionally, most browsers now prevent 3rd party cookies (so no sessions) and Flash from 3rd party hosts does not always get full privileges to access the DOM (to avoid XSS exploits). Since video sites want their embeds to play on sites like Facebook and Myspace, they pretty much have to let anyone with valid headers stream their content.

There are Flash RTMP streams and more complex content distribution network services to stream FLVs but that adds to the cost tremendously. A Flash stream server is magnitudes more expensive than a cheap lighttpd box with ample storage.

Also, it wasn't just the simple links to the illegal content that is the issue here. Like I said, he wasn't just providing a list of illegal content. He was making it viewable in his and only his site. That means you cannot go to Google to watch that episode of Seinfeld, you HAVE to watch it on his site. Thereby, his site was a very crucial component of copyright violation. Without his site, you could never find David Attenborough's Secret Life on Plants on Veoh. That goes more than just linking to illegal content

On your site, you can provide a link to 1-10-100 illegal videos on Google or YouTube. That would constitute simple deep linking to copyrighted material, which in itself is illegal but mostly tolerated when it comes to video as copyright holders can file a DMCA request with the video host to bring down the video. His site bypassed that entire mechanism for copyright holders to even file a claim. That's why they're pissed and why he was arrested. I just hope they don't try to set any examples by completely ruining his life as a warning to others.

ARCHIVE: Name that Color JavaScript library

Tue. Sep 4th 2007, 11:18pm:

11:10 pm) A lot of people loved my recently released Name that Color app that helps you find the name of the closest matching color for any RGB value. Many suggested releasing the code or making some sort of web-service to let others use the same library in their projects. So here is the Name that Color JavaScript library for all to use, embed, and extend.


Mon. Aug 27th 2007, 12:19am:

I spend a lot of time on reddit, sometimes too much. While I have no qualms (yet) about the amount of time I spend there, I do have a lot of issues about HOW I spend my time there. Here are some of my reddit obsessions. I wonder if I'm the only one with these:
  1. If more than one person replies to my comment and I feel like replying to one of them, I feel obligated to say something to the rest of the repliers too.
  2. Every single link on the Hot & Recommended pages must be purple. Really bad headlines for articles that I don't want to read, must get the 'hide.'
  3. Must click on my username every few minutes to check which of my comments get up and down votes.
  4. Discover patterns within the up/down vote stream for each comment. E.g. a two-three sentence long comment made early on in a rising article can get 10-30 up votes and up to five replies even if it is not a great observation while detailed, informative comments made three hours after a link hits Hot page will get 10 up votes but rarely any comments.
  5. Open Hot, New, Recommended pages in three different tabs with the mail icon showing red in all. After reading the mail from Hot tab and closing it, click on the mail icon in other tabs and get disappointed to find no new comments.
  6. Click on the New page and smile when over 25% of articles are purple and ensure every article with a red (friend) submitter is purple.
  7. Must click every hidden comment to see why it has negative points. Act furious upon reading it and then promptly down vote it.
  8. Battle my inner-self to decide if the logical, sane, and factually correct comment at X votes that I disagree with should get a down vote because its parent/child comment that I agree with and have already awarded an up vote to, also has X points now. I have the opportunity to reverse the fate of the comments! Should I take it or just let it go?!
  9. After submitting articles, refresh the New page every 30 seconds to track their gradual fall off the page. Each time an article gets a bump of more than 5 slots, rejoice for a moment before realizing and lamenting at the predictability of my actions: "Now due to a construct in my mind that makes their falling and their flight symbolic of my entire existence, it becomes important for me to get up and see their last second curves toward flight. It's almost as if my life will fall unless I see their ascent" - Cake.
  10. Bemoan the prevalence of mildly-amusing [pic] and [video] links and not enough well-researched, well-written, unbiased articles as I up vote every funny street sign, fully aware of my own hypocrisy.

All /tech Entries

    Oct. 20 2007, 03:43am:Deep Linking, Hot Linking, and the TV-Links arrest
    Sep. 4 2007, 11:18pm:Name that Color JavaScript library
    Aug. 27 2007, 12:19am:Reddit OCDs
    Jan. 1 2007, 04:07pm:Top Seven Flash Animations of Ultimate Doom
    Dec. 23 2006, 11:05pm:Black magic causing database server timeouts
    Nov. 14 2006, 01:28am:Tagline Generator - Timeline-based Tag Clouds
    Aug. 4 2006, 08:06am:Spam Bombed
    Jul. 15 2006, 12:36pm:Anatomy of typical spam
    Jul. 11 2006, 01:04pm:Please don't lock me out
    May. 5 2006, 01:35pm:Irony at Enterprisingly Mobile speeds!
    Apr. 17 2006, 12:01am:Five simple tips for High Performance DB sites
    Apr. 8 2006, 07:33pm:Cell phone + Speaker disturbance
    Mar. 31 2006, 02:27pm:The more you sweat...
    Mar. 1 2006, 11:31pm:PHP Framework Rant
    Jan. 31 2006, 11:14pm:Tap this NSA!
    Dec. 29 2005, 11:04am:Little Servers, Big Performance
    Dec. 26 2005, 03:47am:Of Toys and Games...
    Dec. 24 2005, 10:30pm:Top Ten IT Google Videos
    Dec. 22 2005, 06:12pm:Touched by a slide rule
    Dec. 20 2005, 06:19pm:How to make your images 'Glossy & Glowing'
    Dec. 9 2005, 08:07pm:dfs js (Delayed Flash Show JavaScript)
    Dec. 3 2005, 11:22pm:PHP GeoIPLocation Library: Freeware
    Nov. 25 2005, 05:22pm:Spammer Tricks
    Nov. 19 2005, 07:47pm:The Real Programmer's Dictionary
    Nov. 4 2005, 01:10pm:IJA Error
    Oct. 15 2005, 04:14pm:PDFB Library - Barcodes in Dynamic PDFs
    Oct. 12 2005, 10:41pm:Free PDF Solutions
    Sep. 29 2005, 08:41pm:MySQL: The first love you can't stop loving...
    Sep. 13 2005, 10:24pm:So I'm learning PostgreSQL
    Sep. 10 2005, 03:30pm:What's the deal with passwords?
    Aug. 2 2005, 10:34am:Stupid 'Security' Problem - MS Access in WinXP SP2
    Jul. 10 2005, 08:24pm:Outlook Express to Thunderbird
    Jun. 21 2005, 12:04am:Google Maps with Countries
    Jun. 17 2005, 01:58am:Ajax on Rails on Flickr
    Jun. 16 2005, 10:22pm:Storing nested trees in tabular databases
    Jun. 14 2005, 06:58pm:Hacks: Punishment for others' mistakes
    Jun. 11 2005, 02:42pm:Why Napster Rocks
    Jun. 11 2005, 12:55am:Cheap Clustering
    Jun. 11 2005, 12:32am:Flashy JavaScript
    Jun. 10 2005, 11:08pm:Framework for PHP
    Jun. 10 2005, 06:27pm:Developer, Know Thy User
    Jun. 9 2005, 08:10pm:Happy 10th B'Day PHP
    Jun. 9 2005, 12:10am:New Downloads Section
    Jun. 7 2005, 10:15pm:Random Color Scheme
    Jun. 7 2005, 09:07pm:The changing definition of 'Scale'
    Jun. 7 2005, 08:32pm:The only one...
    Jun. 6 2005, 10:05pm:Is XML the best we can come up with?
    Jun. 6 2005, 08:49pm:Much Ajax about Nothing
    Jun. 6 2005, 08:43pm:Random Link
    Jun. 5 2005, 11:43pm:Similar problems
    Jun. 5 2005, 10:02pm:Presenting the /tech 'blog