imgur, please don't be the next tinypic or imageshack

Fri 15 August 2014

[edit 17/8: @minimaxir posted about this several months ago, so it's not particularly new behaviour: you can read his blog post here.]

I like using Imgur. It's reasonably fast and usable. That was what everyone thought about, Tinypic, or Photobucket back in the day, too. Previously, Imgur had a quick loading frontpage that showed a couple of images and an upload by file or URL button, with a direct link to a HTML uploader (/?noFlash) -- Flash being enabled even very shortly drains the batteries of a lot of mobile and laptop devices.

Things have changed now. In the past year or two, Imgur has added features such as a meme generator, a new frontpage, and more as they started to branch out from being reddit's adopted child into an independent entity. This seems to have come with a price. To me, Imgur is an image hosting site - not a social network I want to comment and "upboat" cats on.

  • "The Most Viral images on the Internet, sorted by popularity" frontpage now grabs 80 images on page load, in addition to being half a page of Impact-font-family imagemacros.
  • Flash disabled / click-to-play now requires you to manually hide the element.
  • If you don't have an account, direct links are no longer easily copyable, requiring you to Copy Image Location from the image.
  • The Imgur "native community" seems to dislike reddit for "taking over their site"[0][1][2], as funny as it is
  • Direct links no longer work at all on a number of sites. Many major sites get forcefully redirected to the "comment page". This is especially infuriating when clicking imgur links on mobile, because of all the extraneous data, pointless comments, ad beacons, analytics beacons, etc.

The below table was generated based on the top sites ranked by Alexa and the function below.
$ wget; unzip; head -n 100 top-1m.csv

Referrer Result HTTP Location Redirected 302 Redirected 302 Redirected 302 Redirected 302 Redirected 302 Redirected 302
function Get(string $referrer): string {
   $url = (string) "";

   $c = curl_init();
   curl_setopt($c, CURLOPT_URL, $url);
   curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25");
   curl_setopt($c, CURLOPT_REFERER, "http://www.{$referrer}");
   curl_setopt($c, CURLOPT_HEADER, 1);

   $temp = curl_exec($c);
   $header_size = curl_getinfo($c, CURLINFO_HEADER_SIZE);
   $header = substr($temp, 0, $header_size);
   $header = http_parse_headers($header);

   if (isset($header['Location'])) {
       return $header['Location'];
   } else { return $url; }

Comment on this post on HN.