SLLABslevap / Bandcamp TagPlayer

Published:

Version: 0.1.1+edadd85 updated

Summary: A genre/tag audio player for bandcamp.com (like Last.fm Player for Last.fm).

License: MIT; https://opensource.org/licenses/MIT

License: GPL-3.0

Bandcamp TagPlayer

###What is it?
You pass it a genre, it plays music of that genre from bandcamp.com.
It's a Last.fm Player-like genre/tag audio player for the music streaming site bandcamp.com.
(Bandcamp is a pretty neat site where bands can publish and sell their music directly to their fans. You can listen to most music for free before deciding to support the musician and buy it).

###Why?
To discover new music.

###How to use it?

  1. Install a userscript addon for your browser of choice so that you can use userscripts.
  2. Install the Bandcamp TagPlayer userscript either here, here or here.
  3. The url of BCTP is https://bandcamp.com/tagplayer/ but you can also access it via the bandcamp tags pages through links the script inserts. Do either of the followings:

###Links
Primary home of the script is at github. It also on greasyfork and openuserjs

###Screenshots?
Coming

###Browser support?
Last tested with

  • Firefox 35.0 with Greasemonkey 2.3
  • Chrome 40.0 with Tampermonkey 3.9

###Notes
When loading tags, some tags are interchangeable like "hip-hop" "hip hop" "hip/hop", since these are all converted into a bandcamp-readable format by bandcamp, in this case into "hip-hop". Generally speaking white spaces and most special characters are replaced with "-", so it doesn't matter if you play the "hip-hop" or the "hip hop" tag, the same tracks will be played in both cases.
(To see what the bandcamp-readable format of the currently playing tag is, hover over the tag in the "currently playing:" section (top right))

Once a tag is loaded, the page can be bookmarked, so you can return later to listen to the same tag by simply opening the bookmark rather than first opening the player then loading the tag.

Since the script doesn't have bandcamp database access, a pool of tracks that are available for playback at bandcamp has to be created. The script will select a random track from this pool each time a track is loaded. Since the tracks for a specific tag are loaded into the pool progressively to avoid hogging the bandcamp servers, when loading a specific tag consecutively multiple times, the first track is selected from a pool of the same 40 albums most of the time. For the second track there are 80 albums in the pool, for the third 120 artist, etc., the larger the number of tracks played, the more artists will be loaded into the pool, so there is less chance of the same track to be played repeatedly.

New/popular option: after changing this, reloading the currently playing tag is recommended since zhe changes don't have an effect on the tracks already loaded into the album pool.

###TODO / features I might add:

  • Last.fm track/artist/album lookup button
  • Save for later / bookmark / like functionality for tracks
  • Option to play a combination of tags rather than a single tag
  • Playlist / song history for the current session
    (showing the previously played tracks, option to play them again)
    (showing the next track)
  • Ignore a song / never play a specific song in the future
  • Album/artist/track info, buy link
  • Last.fm scrobbling
  • Share / embed button
  • Option to set a default tag(?)
  • Responsive design?
  • Skinning?
  • Caching

Rating: 0