Hypem Ruby Gem
Introduction
This is an unoffical Ruby gem for the Hype Machine read-only API. It currently only supports Ruby 1.9.x
.
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 artistHypem.playlist.blog('blog_name')
--- latest tracks from a given blog nameHypem.playlist.search('query_string')
--- tracks matching stringHypem.playlist.tags(['tag_name','electro','indie'])
--- tracks matching tags. The API warns against combining too many different tagsHypem.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::all
default --- 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_profile
updates 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.friends
retrieves the user's friends as an array ofHypem::User
objectsuser.favorite_blogs
retrieves the user's favorite blogs as an array ofHypem::Blog
objects
Playlist Methods
Hypem::User
offers several methods for accessing a particular user's personalized playlists:
user.loved_playlist
--- a user's loved tracksuser.obsessed_playlist
--- a user's obsessed tracksuser.feed_playlist
--- a user's tracks from all followed entitiesuser.friends_favorites_playlist
--- a user's friends' favorited tracksuser.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