Short and Sweet
This will be a short and sweet post. It’s been a while since I’ve used my HypeMachine Chrome Extension and just as long since I’ve used HypeMachine (my music taste has shifted). However I’m always surprises me the community of people using the extension.
I’ve recently merged in some new code that allows the user to download multiple songs at once which was graciously written by Scott Clayton. The code is now in master, so feel free to re-install the extension and give the new functionality a whirl!
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
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…
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.
#Run this from 'Terminal' on your mac for instance
git clone -b chrome-bug-373182 email@example.com:fzakaria/HypeMachine-Extension.git
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,
Hasn’t been a while since I’ve written a blog post and this one will be pretty short. I’ve recently submitted a small push to my HypeMachine-Extension. The commit includes:
- General code cleanlyness (so people can learn/understand better what it’s doing)
- Added Google Analytics to see how many songs are being downloaded in general.
- Added download attribute so that the song automatically downloads when you click the button!
I think the best reason to grab the latest changes is for the download on click fix, which also sets the name of the file download to the “title – artist.mp3”
Ideas for Metrics?
I’d love to hear ideas on some neat Google Analytics people would like to see tracked. I’ll be publishing the metrics I’m tracking now once I get enough data!
Google Chrome Store ?
Does anyone know enough of copyright law/trademark infringement to help me understand whether I can safely re-publish the extension to the Google Chrome Store?
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:
- changing to HypeMachine’s new private API (which I’ve detailed earlier)
- adding the new sexy HTML5 download attribute
- Downloaded songs are now named according to artist and title
- 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!
Older work, still valid
A lot of people have been sending me e-mails due to the current state of MetaHypem. If you’re looking to find alterative ways to download the music I can recommend the following.
- Just follow the blog link for each song. The blogs let you download the music.
I’ve written previously a Chrome Extension that injects a download button into the web page.e web page.
Don’t forget you need to right-click and select Save-As however…
- I wrote an example Python script outlining how to download songs that you can use or help build other tools with.
The game resumes
Over the course of this weekend, my latest pet project MetaHypem has been shut down but by HypeMachine and not through us. HypeMachine seems to have added either our domain or instance running our server onto a black-list.
Here is a nice screen capture of what current data HypeMachine is returning my scraper. The MP3 Artist/Title was a friendly sting I guess.
I haven’t done much publicizing of the server and daily hits to the site was only ~40 visitors (most returning). However clearly there was a need/love for having access to the music (~50k downloads). All the blogs that HypeMachine scrapes allow users to download the music. The purpose of a music blog is to help promote bands and new music. Keeping the music locked onto their platform seems going against their goal.
Where to go from here
I’m currently investigating (alongside my partner) different ways to resolve this issue. I’d love feedback from people expressing perhaps which they would prefer or even have experience with!
- Move the server to EC2. Perhaps they only block the IP at which I can just tear down the server to get a new IP.
- Change the scraping of HypeMachine to be distributed and have other instances perform the scraping.
- Release the source code to the project and let others run local instances.
- Figure out other inventive ways!
Happy New Year!
I’ve finally gotten back into development for MetaHypem (alongside Alex) and most of it has been spurred/inspired by the amount of songs downloaded! It figuratively blew my mind to have 30,000 downloads…
I’ve just released a small update that includes some fixes and 1 specific feature that has been asked about! We have some cool stuff planned for the site so I hope you keep checking it and send me feedback! We are using the feedback to drive what to work on next!
- 28/12/2012 – You can now search for a specific url (i.e. http://hypem.com/artist/Noosa )
- 27/12/2012 – Added an Expire time for each song record (currently 1 hour). This is incase HypeMachine updates the download URL.
- 27/12/2012 – Generic Bug Fixing for cases where no songs are returned from HypeMachine
As always, please send me feedback and if anyone wants to contribute (especially in terms of design/HTML/CSS contact us!)
Update Since posting (~1 month) we generated 30 000 songs. Awesome!
I’ve only told few people (not that many read my blog) about Metahypem, largely because it is still a huge WIP and a learning experience. Nevertheless, the few that have been checked it out seem to be using it quite extensively.
I haven’t managed to grep the logs yet to see some interesting statistics, however we’ve recently passed the milestone of over 10 000 songs liberated.
That’s a pretty awesome number! That many times someone wanted to hear a particular song while not at their computer or over an internet connection and we aided them in that! I’ll follow up with some interesting tidbits from the request logs when I get a chance.
For those in a rush and want a tl;dr; navigate to http://hypemfinder.fzakaria.com
Hey everyone! I decided to throw up what I had so far for the site. It’s working but a lot of functionality is missing however the most important part (downloading the songs) is extremely functional 🙂
- First navigate to http://hypemfinder.fzakaria.com
- Enter a valid hypem.com url (i.e. http://hypem.com/popular or http://hypem.com/track/1qb1t)
- Click Search
- It may take a few seconds (if searching a lot of songs), but the list of found songs will apear
- Click the download button and enjoy!
Help, Feedback, Donations and Criticism Appreciated
This was honestly a test toy project to learn Django so don’t expect too much however I’d love some user feedback on features, usability or even get a hold of me if you’d like to contribute!
There’s a few things left to still do to make it polished and I’d love some help with it.
To do list
Figure out URL scheme and remove the /hypemfinder/ app name at the end
- Buy domain name (figure out domain name)
- Figure out how to properly setup logging. Right now when I perform manage.py actions it creates a logfile that Apache cannot write to!
- Add Contact/About/Tutorial page
- Add detail page for songs
- Add extended search functionality to make use of Hypem.com’s search bar!
- Cleanup CSS and make prettier