Gracenote API - MusicHackDay

Embed Size (px)

Citation preview

API Walkthrough @ MusicHackDay Stockholm '13

scar Celma (@ocelma)

these slides are already available at http://slideshare.net/ocelma

Gracenote

Founded in 1998

Offices in the U.S. (SF Bay Area), Japan, Korea, Taiwan and Germany

300+ employees

Business Verticals

Video

Interactive Program Guide TV Listings

Audio and video recognition for Second screen Apps

Smart recommendations

Music

Music recognition for Cloud services and Apps

Discovery and playlisting

Linking

Automotive

Music recognition, playlisting and metadata clean-up

Cover Art and Artist Images

Enhanced voice recognition

Some numbers...

Business Verticals

Video

Interactive Program Guide TV Listings

Audio and video recognition for Second screen Apps

Smart recommendations

Music

Music recognition for Cloud services and Apps

Discovery and playlisting

Linking

Automotive

Music recognition, playlisting and metadata clean-up

Cover Art and Artist Images

Enhanced voice recognition

Business Verticals

Video

Interactive Program Guide TV Listings

Audio and video recognition for Second screen Apps

Smart recommendations

Music

Music recognition for Cloud services and Apps

Discovery and playlisting

Linking

Automotive

Music recognition, playlisting and metadata clean-up

Cover Art and Artist Images

Enhanced voice recognition

3 developer platforms

Web API

Delivers a rich set of music metadata (XML)

Text Search Query

ReturnsArtist: genres, origin, decades, images, bio,

Album: cover art, track listing,

Track: tempo, mood,

Web API

WrappersPython https://github.com/cweichen/pygn

PHP https://github.com/richadams/php-gracenote

Java https://github.com/richadams/java-gracenote

Web API

WrappersPython https://github.com/cweichen/pygn

PHP https://github.com/richadams/php-gracenote

Java https://github.com/richadams/java-gracenote

Web API

import pygn # Get it at https://github.com/cweichen/pygn

clientID = 'XXXXXX-XXXXXXXXXXXXXXXXXX' userID = pygn.register(clientID) # only call it once!

metadata = pygn.searchTrack(clientID, userID, 'Backyard Babies', '', 'Minus Celsius')

Web API

import pygn # Get it at https://github.com/cweichen/pygn

clientID = 'XXXXXX-XXXXXXXXXXXXXXXXXX' userID = pygn.register(clientID) # only call it once!

metadata = pygn.searchTrack(clientID, userID, 'Backyard Babies', '', 'Minus Celsius')

BIO: "Swedish punks the Backyard Babies formed in the city of Nssj in 1987 (...)"

Web API

import pygn # Get it at https://github.com/cweichen/pygn

clientID = 'XXXXXX-XXXXXXXXXXXXXXXXXX' userID = pygn.register(clientID) # only call it once!

metadata = pygn.searchTrack(clientID, userID, 'Backyard Babies', '', 'Minus Celsius')

Web API

import pygn # Get it at https://github.com/cweichen/pygn

clientID = 'XXXXXX-XXXXXXXXXXXXXXXXXX' userID = pygn.register(clientID) # only call it once!

metadata = pygn.searchTrack(clientID, userID, 'Backyard Babies', '', 'Minus Celsius')

Medium Tempo, Heavy Brooding song

by a Swedish Defiant Punk band from the 1990's

Web API

import pygn # Get it at https://github.com/cweichen/pygn

clientID = 'XXXXXX-XXXXXXXXXXXXXXXXXX' userID = pygn.register(clientID) # only call it once!

metadata = pygn.searchTrack(clientID, userID, 'Backyard Babies', '', 'Minus Celsius')

Medium Tempo, Heavy Brooding song

by a Swedish Defiant Punk band from the 1990's

Web API

import pygn # Get it at https://github.com/cweichen/pygn

clientID = 'XXXXXX-XXXXXXXXXXXXXXXXXX' userID = pygn.register(clientID) # only call it once!

metadata = pygn.searchTrack(clientID, userID, 'Backyard Babies', '', 'Minus Celsius')

Medium Tempo, Heavy Brooding song

by a Swedish Defiant Punk band from the 1990's

Web API

import pygn # Get it at https://github.com/cweichen/pygn

clientID = 'XXXXXX-XXXXXXXXXXXXXXXXXX' userID = pygn.register(clientID) # only call it once!

metadata = pygn.searchTrack(clientID, userID, 'Backyard Babies', '', 'Minus Celsius')

Medium Tempo, Heavy Brooding song

by a Swedish Defiant Punk band from the 1990's

Web API

import pygn # Get it at https://github.com/cweichen/pygn

clientID = 'XXXXXX-XXXXXXXXXXXXXXXXXX' userID = pygn.register(clientID) # only call it once!

metadata = pygn.searchTrack(clientID, userID, 'Backyard Babies', '', 'Minus Celsius')

Medium Tempo, Heavy Brooding song

by a Swedish Defiant Punk band from the 1990's

Web API

import pygn # Get it at https://github.com/cweichen/pygn

clientID = 'XXXXXX-XXXXXXXXXXXXXXXXXX' userID = pygn.register(clientID) # only call it once!

metadata = pygn.searchTrack(clientID, userID, 'Backyard Babies', '', 'Minus Celsius')

Medium Tempo, Heavy Brooding song

by a Swedish Defiant Punk band from the 1990's

3 developer platforms

Mobile Client

iOS & Android SDK

Provides all Web API functionality PLUSLibrary identification (audio fingerprinting)

Streaming "Over The Air" identification

Sample iOS & Android application in SDK

3 developer platforms

GNSDK

Good for hardcore C programmers!

Desktop applicationsLibrary identification (audio fingerprinting)

Example appsMood Grid & Playlisting (local collection)

GNSDK

Moodgrid

GNSDK

Playlist generation GENERATE PLAYLIST WHERE GN_Tempo > 120 AND GN_Mood LIKE SEED AND GN_Genre LIKE SEED LIMIT 5 PER GN_ArtistName

GNSDK

Prizes

Theme please, not another iP*d or Android!

$300 (per team) Shopping Cart. Select from:

Arduino

Raspberry Pi

Makey Makey

Sony(waterproof! or similar)

Nike FuelBand

???

Ideas

Facebook likes (or Last.fm music activity) + Gracenote metadata create a visualization of a users music collection and tastes, or his/her friends music tastes

Mood-based exploration/navigation of your local collection

Mood Lighting Change the ambient of a room, according to the mood/tempo of the song

@GracenoteDev

Oscar Celma (@ocelma)

Get These Slides at

http://slideshare.net/ocelma

Contact

https://

Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline Level