Posted in January, 2014

After I discovered a way to watch Twitch without Flash, I’ve been using it to watch streams on Twitch. But manually opening a new window and going to the new HLS URL is tedious, so I made a JavaScript bookmarklet to automate it. Note that it requires Safari on OS X to watch the HLS stream. I’m not aware of any other browsers that support HLS at this time.

Install it by dragging this to your favorites bar: Twitch HLS.

Use it by clicking the bookmark whenever you’re on a Twitch stream page. It does two things: pauses the Flash stream, and opens a popup with the HLS stream.

The code is available on Github. More details are there too.

Update: I’ve made a bookmarklet to create a popup window of the HLS stream if you’re using Safari on Mac OS X.

One of the last things I still use Flash for is watching streams on Twitch. I don’t really mind it on my desktop, but it drains battery like crazy on my MacBook Pro. My battery lasts for about 1.5 hours while watching streams, compared to around 4 hours for normal use (browsing the web, etc.).

It turns out Twitch did some work on streaming with HLS, but there doesn’t seem to have been much progress and the ETAs given in that thread by Twitch staff have long passed. HLS is Apple’s HTTP Live Streaming protocol, which is supported by Safari on Mac OS X and iOS, as well as various other clients.

The trick to watch a stream through HLS is just adding /hls to the URL, for example:

The above URL looks like this in Safari (but will work in any HLS player):

Twitch using HLS

A great part of this is that only one ad seems to run — right when you open the stream. After that, it’s ad-free for as long as I’ve been using it. I had to disable Adblock for the stream to load, using the filter rule below. It seems if you block the ad video, the stream won’t load at all.



  • Quality is automatically determined, and there’s no manual setting
  • You have to play the ad at the beginning for it to work, but that’s the only one
  • No access to chat, but this could be considered a feature…

Power Savings

Example of Flash being power hungry

As you can see in this screenshot of Activity Monitor’s Energy tab, the Flash player was using more than 5 times the energy that the native HLS player is using.

Almost a month ago, I dropped Text Link Ads after I found out that Google had applied a manual action to my site for having what they define as a link scheme. I removed the advertising links from my footer, and applied for a reconsideration request with the hope that Google would overturn their decision.

I just found out today that they reviewed their decision, and as of January 22 my site is all clear in the Google search index. In fact, it’s even jumped up a few spots since. I applied for the reconsideration request on December 27, so it took just under a month for them to reach my review request. I’m guessing the winter holidays got in the way, also.

The full text of their response:

We received a reconsideration request from a site owner for

Previously the webspam team had taken action on your site because we believed it violated our quality guidelines. After reviewing your reconsideration request, we have revoked this action.

You can use the Manual Actions page in Webmaster Tools to view actions currently applied to your site. It may take some time before recent updates to your site’s status are reflected on this page and in our search results.

Of course, there may be other issues with your site that could affect its ranking. Google determines the order of search results using a series of computer programs known as algorithms. We make hundreds of changes to our search algorithms each year, and we employ more than 200 different signals when ranking pages. As our algorithms change and as the web (including your site) changes, some fluctuation in ranking will happen from time to time as we make updates to present the best results to our users.

If your site continues to have trouble in our search results, please see our Help Center for help with diagnosing the issue.

Thank you for helping us to maintain the quality of search results for our users.

This is a very minor release that includes a new Italian (it_IT) translation thanks to Marco Zambianchi. There are no other changes, so feel free to skip this release if you don’t need the Italian translation.

Download it now.

Just a small release with one change: now, the text domain for the translations don’t load unless the WPLANG constant is both defined and not empty. I found that loading this added overhead to every page load, since the plugin file is always loaded even if the archives aren’t asked for.

This cut the runtime for this plugin from 20 to 30% in the Plugin Performance Profiler (P3) tests to an insignificant level. No other changes were made for this release.

Download it now.