Try #2: Fixing download name

tl;dr;

Let’s get straight to the point; I believe I have finally fixed the download name issue. You can download the latest fix in the chrome-bug-373182 branch; simply download the zip chrome-bug-373182.zip

Explanation

For those curious who have been tracking the Chrome bug; I thought the issue was unsolvable as the latest fix has caused any cross-origin requests to not respect the download attribute (except for data URIs). I had nevertheless believed I had fixed it earlier because when testing some downloads (from the popular page) I only attempted the first page of songs loaded. The glaring problem however was that the songs loaded upon scrolling down were not receiving the jQuery on event (even with the delegation syntax!). My solution at the moment, is simply to unbind all event handlers for the array key and re-bind them upon any ajax completion. This isn’t the greatest solution but it works!
Perhaps someone can help me fix it so that it uses jQuery’s delegation event handling properly…

Fix for latest Extension Hypemachine bug

Wah Happened?!

During the last week I got a lot of e-mails from people telling me how the extension was no longer working for them. The complaint was the name of the song downloaded seemed to have been ‘garbled’ or no longer working. I’m sorry it took me a while (~1 week) to dig into it, however I now have published the fix into a new branch on Github.

For those curious, the regression (bug) looks to be caused by Chrome/Chromium and is currently being tracked here, where they don’t seem to be respecting the download attribute for anchor tags.

Enjoy the music,
Farid

Update – Google Chrome HypeMachine Extension Alive and Well!

I’m still kicking

tl;dr; You can get the latest and greatest of the Chrome HypeMachine Download Extension on my Github Account.

I hope everyone hasn’t written me off as dead since the somewhat shutdown of MetaHypem. I’ve been trying to think of a new project and devoting to more time to my professional life (i.e. working at Amazon). I have however not forgotten about all of you and your insatiable desire for music.

I recently received a Pull-Request that detailed some changes I’ve been planning to make for quite a while! (props to landr0id). The changes outlined:

  1. changing to HypeMachine’s new private API (which I’ve detailed earlier)
  2. adding the new sexy HTML5 download attribute
  3. Downloaded songs are now named according to artist and title
  4. general performance improvements

What does this mean for you?

The extension is still alive and well. You can even now Left Click on the download arrow to kickoff the download. Goodbye confusing Save As… instructions!

Python Download Script Updated

I’m so slow

I’m been so caught up in my new website project (downloading songs from HypeMachine as well), that I’ve really left the extension and python script fall behind.
In an attempt to try and rectify this, I’ve made the first step by fixing/updating the python script. I’ve already documented many of the changes that needed to occur in my previous blog post but now here is the full source for those who are curious!

You can download the script here: https://github.com/fzakaria/HypeScript

I’ve substantially cleaned up the code and removed the sqlite (database) aspect to it. This has resulted in a nice clean barebone downloader which does the one job it needs to do; download’em songs!. I’m always looking for advice, comments and feedback.

HypeMachine Extension Fixed

Sorry it took so long…

While I was away on vacation in Turkey (will post photos later), HypeMachine and Chrome decided to both muck up my extension. This is a short blog post to inform everyone that the code found on GitHub is now fixed and working again. Hurray!

Please go to https://github.com/fzakaria/HypeMachine-Extension to get the latest Chrome Extension.

Call to arms

What I was not able to fix however is the nifty/spiffy look of the downward arrow button. I’d love if someone can please contribute to the project and fix the arrow. I liked the original implementation of it being done in pure CSS as it blended in beautifully with the Hypem page. Please either contact me or submit a patch to the GitHub repository!

Continue reading “HypeMachine Extension Fixed”

Catching Up: Hypescript fixed. More to come.

Finally have some time

I’ve received numerous (very nice hearing how many people have been using my software) e-mails and responses regarding how my hypescript and batch downloader are no longer working.

I’ve recently accepted a new position at Amazon in Seattle and the move was very time consuming. I was saddened at the state of the code and how I felt like I was letting people down by not fixing it in a timely fashion. Now that it’s been a month or so since my move I’ve finally had time to work on fixing them for you guys! 🙂

The fix

The HypeMachine guys keep breaking the script due to my terrible regular expression I was using to scrape the site for the id & keys. I’m hoping the current regex I’ve updated it to is more robust and will thwart a few more attempts from them from breaking it!

What needs to be parsed

My regular expression

If you are more of a wiz at regex than me please recommend a better pattern 🙂

Update: Fixed HypeScript and HypeMachine Extension

Just a quick update.

I’ve fixed the HypeScript issue and updaed the HypeMachine Chrome extension. Both should be working, please let me know if they are still not.

For those curious as to the fixes they are:

HypeScript:

  • Had to change the regular expression used to match the id/keys.

HypeExtension:

  • Changed where the download button is appended to make it always properly visible and aesthetically pleasing still.

You can checkout my commits on GitHub and get the latest extension and hype script. I’ll try to update the java GUI batch downloader tonight (I need to re-setup the project again :S )

Please let me know if you have any issues or need any help!

HypeMachine Script / Java / Extension Not Working

Hey Everyone,

First off, just wanted to thank everyone for all the kind words and support I’ve received either via the comments or by e-mail! It’s always touching to hear about how a little program I wrote (in a hurry for my own use) has been so helpful for others. I think we all can agree how invaluable HypeMachine has been in expanding our music taste and it only makes sense to want to share that music offline at parties, in the form of playlists and at the gym for instance.

I’ve gotten a lot of feedback recently about how all the scripts, java program and extension have recently stopped working. I’m going to try and get it fixed A.S.A.P. however I’d like to point you all to my GitHub where I’ve made all the code available. Please file a bug request or even fork the code! I kind of wrote all the code in a hurry for myself and it would be great to get some global community together to improve upon it! =)

I’ve set aside some time this week to look at it.

Cheers,
Farid Zakaria

Beatprice in Alpha

Please checkout the GitHub repository HERE and the extension on the Google Chrome Store HERE.

Recap

I’ve written previously about a Chrome Extension I had in mind for this website. The idea I had was to facilitate for people who purchase from the online store a means of making sure they are getting the best price.

The great thing about the online music store is that they specialize in electronic music and therefore most DJs and electronic music lovers look to their to find latest releases. Most of the music found on on the site is not offered by some of the more giant music stores (i.e. iTunes or Amazon) however there is some overlap!

The idea for the extension came when I noticed that many of the more mainstream songs on the store could be found cheaper (usually -50%) on other electronic stores (i.e. iTunes or Amazon).

This websiteis an online music store specializing in electronic dance music and culture.

I’ve uploaded Alpha Version to the Chrome Web Store and GitHub. Go grab it!

Continue reading “Beatprice in Alpha”

Beatprice Chrome Extension Edition

Beatprice Chrome Extension

About time

It’s been a while since I’ve been only working on my HypeMachine extension and although it was simple (although learning how to get around the isolated world was interesting). The passion to make the HypeMachine extension was largely driven by my passion for music, and that’s why I’m excited about the new extension I’m working on!

What is @REMOVED@?

For those unfamiliar with this site, it is an online music store specializing in electronic/dance music. What’s great about the music store is that the whole spectrum of popularity range is on the store, anyone from as well known such as Tiesto to smaller local DJs in your hometown.

The current catalog is made up of more than 700,000 tracks, 160,000 releases, and 24,000 artist charts from over 120,000 artists and remixers.

The Catalyst

The songs sold on the site are ahem pretty steep. For a user who’s gotten use to either purchasing their music from larger music stores (i.e. iTunes or Amazon), any track more than 0.99$ seems a lot.

Most tracks on the site are 2.49$ for instance

The goal in writing this new extension was to quickly offer a way for someone browsing @REMOVED@ to see if it’s available on another online music store at a cheaper price. It was while browsing the store with a friend and remembering having seen the same track offered at almost -50% the cost did the drive and idea to write this extension come about.

The Extension

My goal with the extension was to inject something onto the online music stores web page (as the user browsed), to notify them that a cheaper alternative had been found. The ultimate goal is to have a list of supported music stores to check against and then present the cheapest price. The current workflow model however is:

  1. Browse the site until you are ready to purchase a track
  2. Click the icon action button in the url bar
  3. The script will scrape the current page for all purchasable songs
  4. The script will then attempt to find matching songs and present them in a popup window

Here is a quick video to show what I’ve done so far with the extension. Please ignore the Screenflow watermark. I upgraded my version and it wanted me to purchase a new license. ><;

Future

There are a bunch of fixes and polish I’d like to make, however I am pretty excited that the idea overall is plausible and somewhat functional! Things I’d like to change or add to the extension are:

  • I’d like to inject the notification or link to the cheaper site directly next to the buy icon on the webpage rather than having the user click the button in the URL tray
  • I’d like to support a bunch more sites (depending on whether they offer a search API) since iTunes only really sells the more notable artists. Some of the sites I’d like to include are juno.co.uk and stompy.com
  • Figure out a way to better perform the matching/searching for each track or release. I’m currently matching 100% on the track’s title and artist, however it would be nice to figure out a more lenient model perhaps involving regular expressions
  • Create a settings page where the user can insert their country of origin and other information (perhaps even how strong they’d like the pattern matching to be. The country of origin is important, since some stores price the content differently and may not be available in certain countries.

Contribute!

I’ve learnt already a great deal more about Chrome Extension development, however my Javascript skills are far from amazing. If you are a fan of the site and would like to contribute please fork my repository and contribute changes! Just like my previous extension, I’ve uploaded this extension on GitHub and would love to see feedback and contribution from others. Hopefully I have made a great base to get the ball rolling!

You can find the extension on my GitHub