Introduction
This is an unoffical Ruby gem for the Hype Machine read-only API. It currently only supports Ruby >= 1.9.2.
Usage
Playlist
The Playlist object is the root of the Hypem API. Each Playlist has an array of Hypem::Track's accessed via the tracks attribute. Pagination is supported with the .next_page and .prev_page, page(num) methods.
Querying
General playlists can be accessed using the following methods. The last argument to each method is the desired page (default 1).
-
Hypem.playlist.artist('artist_name')--- latest tracks from a given artist -
Hypem.playlist.blog('blog_name')--- latest tracks from a given blog name -
Hypem.playlist.search('query_string')--- tracks matching string -
Hypem.playlist.tags(['tag_name','electro','indie'])--- tracks matching tags. The API warns against combining too many different tags -
Hypem.playlist.popular--- the most popular tracks over a certain timeframe or set. It accepts the following filters:-
'3day'default --- most popular over last 3 days -
:lastweek--- most popular over last week -
:noremix--- most popular non-remixed tracks over last 3 days -
:artists--- most popular artists' tracks over last 3 days -
:twitter--- most popular tweeted tracks over last 3 days
-
-
Hypem.playlist.latest--- the latest posted tracks. It accepts the following filters:-
:alldefault --- all tracks, regardless of repost status -
:fresh--- only first posted tracks -
:noremix--- only non-remixed tracks -
:remix--- only remixed tracks
-
Misc.
-
Hypem.playlist.new_from_tracks([hypem_track1,hypem_track2])--- create a custom playlist from an array ofHypem::Track's
User
Users can be accessed via Hypem.user('username') and have various methods:
General Methods
-
user.get_profileupdates the user object with the following attributes:full_name,location,image_url,followed_users_count,followed_items_count,followed_sites_blog, andfollowed_queries_count -
user.friendsretrieves the user's friends as an array ofHypem::Userobjects -
user.favorite_blogsretrieves the user's favorite blogs as an array ofHypem::Blogobjects
Playlist Methods
Hypem::User offers several methods for accessing a particular user's personalized playlists:
-
user.loved_playlist--- a user's loved tracks -
user.obsessed_playlist--- a user's obsessed tracks -
user.feed_playlist--- a user's tracks from all followed entities -
user.friends_favorites_playlist--- a user's friends' favorited tracks -
user.friends_history_playlist--- tracks from a user's friends' listening histories
Blog
Blogs can be retrieved using a blog's unique id via Hypem.blog(1234) and have the following methods:
-
blog.get_info-- retrieves extended information about a blog and setsblog_image,blog_image_small,first_posted,followers,last_posted,site_name,site_url,total_tracks, andid
Track
Tracks can be initialized using a known media_id via Hypem.track('media_id') and synced using the get method on any instance. Depending on the playlist type, some tracks may have more detailed attributes than other.
An example track object inspection is as follows:
@media_id="1jsw9",
@artist="Hot Chip",
@title="Flutes",
@date_posted=#<DateTime: 2012-06-08T16:57:00-07:00 ((2456087j,86220s,0n),-25200s,2299161j)>,
@site_id=16116,
@site_name="the untz and the indie",
@post_url="http://theuntzandtheindie.com/2012/06/08/hot-chip-party/",
@post_id=1835105,
@loved_count=9050,
@posted_count=33,
@thumb_url="http://static-ak.hypem.net/images/albumart0.gif",
@thumb_url_large="http://static-ak.hypem.net/images/blog_images/16116.png",
@time=425,
@description="Today’s Indie: If I Was Your Girlfriend (Hot Chip Cover) / Prince /// Motion Sickness / Hot Chip /// Flutes / Hot Chip So the indie extraordinaire and goddess of all things awesome is out of town up in the Pac NW gettin silly and listening to dAHnce music",
@itunes_link="http://hypem.com/go/itunes_search/Hot%20Chip"
Track Favorites
The people who liked a track can be retrieved via Hypem::TrackFavorites('trackid') or track.favorites and synced using the get method.
Their pagination is supplied via the same methods as the Hypem::Playlist ones, and they also accept the desired page as the last argument at initialization : Hypem::TrackFavorites('trackid', page)
The Hypem::Users present in each page can be retrieved via the users instance method
TODO
- Blogs with given tag
- Authenticated Requests
- Favorite a track
- Log Playback