Lessons from Building world's largest social music platform
Talk by Matt Ogle from Last.fm at FOWA
14802 views | comments | 86 favorites | 4 downloads | 24 embeds (Stats)
More Info
This slideshow is Public
Total Views: 14802 on Slideshare: 14464 from embeds: 338
Most viewed embeds (Top 5):
More
Slideshow Transcript
- Slide 1: Lessons from Building
The World’s Largest
Social Music Platform
Matthew Ogle & Anil Bawa Cavia
FoWA 2007
- Slide 5: How does it work?
- Slide 6: How does it work?
Listen
- to your own music
- to Last.fm radio
- Slide 7: How does it work?
Listen
- to your own music
- to Last.fm radio
Share
-your taste
instead of files
- automatic, via
“scrobbling”
- Slide 8: How does it work?
Listen
- to your own music
- to Last.fm radio
Share
Discover -your taste
- via your friends
instead of files
- via people with
- automatic, via
similar taste
“scrobbling”
- Slide 9: How does it work?
Listen
- to your own music
- to Last.fm radio
Share
Discover -your taste
- via your friends
instead of files
- via people with
- automatic, via
similar taste
“scrobbling”
- Slide 11: 15 million tracks scrobbled / day
- Slide 12: 15 million tracks scrobbled / day
(175 scrobbles per second)
- Slide 13: 15 million tracks scrobbled / day
(175 scrobbles per second)
Over 6 billion tracks scrobbled since 2003
- Slide 14: 15 million tracks scrobbled / day
(175 scrobbles per second)
Over 6 billion tracks scrobbled since 2003
10 million artists
- Slide 15: 15 million tracks scrobbled / day
(175 scrobbles per second)
Over 6 billion tracks scrobbled since 2003
10 million artists
70 million tracks
- Slide 16: 15 million tracks scrobbled / day
(175 scrobbles per second)
Over 6 billion tracks scrobbled since 2003
10 million artists
70 million tracks
700k tracks streamable on Last.fm radio
- Slide 17: 15 million tracks scrobbled / day
(175 scrobbles per second)
Over 6 billion tracks scrobbled since 2003
10 million artists
70 million tracks
700k tracks streamable on Last.fm radio
17 million items tagged
- Slide 18: 15 million tracks scrobbled / day
(175 scrobbles per second)
Over 6 billion tracks scrobbled since 2003
10 million artists
70 million tracks
700k tracks streamable on Last.fm radio
17 million items tagged
145k artist wikis
- Slide 19: Last.fm World Domination Headquarters
Whitechapel, London, 2004
- Slide 20: Early Growth Lessons
- Slide 21: Early Growth Lessons
Don’t overextend – scale with your growth, not before
- Slide 22: Early Growth Lessons
Don’t overextend – scale with your growth, not before
Make sure revenue sources scale with increased usage
- Slide 23: Early Growth Lessons
Don’t overextend – scale with your growth, not before
Make sure revenue sources scale with increased usage
Google ads
- Slide 24: Early Growth Lessons
Don’t overextend – scale with your growth, not before
Make sure revenue sources scale with increased usage
Google ads
User subscriptions
- Slide 25: Early Growth Lessons
Don’t overextend – scale with your growth, not before
Make sure revenue sources scale with increased usage
Google ads
User subscriptions
Involve users in your web application’s story
- Slide 26: Early Growth Lessons
Don’t overextend – scale with your growth, not before
Make sure revenue sources scale with increased usage
Google ads
User subscriptions
Involve users in your web application’s story
Make growth a selfish aim for existing users
- Slide 27: Early Growth Lessons
Don’t overextend – scale with your growth, not before
Make sure revenue sources scale with increased usage
Google ads
User subscriptions
Involve users in your web application’s story
Make growth a selfish aim for existing users
Be as open as you can afford
- Slide 28: Audioscrobbler.com homepage, late 2004
- Slide 29: Openness and Growth
- Slide 30: Openness and Growth
In 2004, we had a cool service, but needed data
- Slide 31: Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
- Slide 32: Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Webservices for accessing users’ music profile data
- Slide 33: Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Webservices for accessing users’ music profile data
Together, provided “round trip” incentive for plugin developers
- Slide 34: Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Webservices for accessing users’ music profile data
Together, provided “round trip” incentive for plugin developers
Winamp, iTunes, WMP, Amarok
- Slide 35: Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Webservices for accessing users’ music profile data
Together, provided “round trip” incentive for plugin developers
Winamp, iTunes, WMP, Amarok
Foobar, QCD, mpd, XMMS, mpg321
- Slide 36: Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Webservices for accessing users’ music profile data
Together, provided “round trip” incentive for plugin developers
Winamp, iTunes, WMP, Amarok
Foobar, QCD, mpd, XMMS, mpg321
Noatun, Quod Libet, Jinzora, Ampache
- Slide 37: Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Webservices for accessing users’ music profile data
Together, provided “round trip” incentive for plugin developers
Winamp, iTunes, WMP, Amarok
Foobar, QCD, mpd, XMMS, mpg321
Noatun, Quod Libet, Jinzora, Ampache
(and dozens more)
- Slide 38: Openness and Users
- Slide 39: Openness and Users
Involve non-technical users as well
- Slide 40: Openness and Users
Involve non-technical users as well
Promote a community around your application
- Slide 41: Openness and Users
Involve non-technical users as well
Promote a community around your application
Talk to your users (bad news > no news)
- Slide 42: Openness and Users
Involve non-technical users as well
Promote a community around your application
Talk to your users (bad news > no news)
More likely to tolerate growing pains…
- Slide 47: Moving into the new office
Old Street, London, May 2006
- Slide 48: Growing up
- Slide 49: Growing up
process
- Slide 50: Growing up
process
product
- Slide 51: Growing up
process
product
- Slide 52: Growing up
•
process 20 to 40+ employees in 6 months
product
- Slide 53: Growing up
•
process 20 to 40+ employees in 6 months
• “people trump process”
product
- Slide 54: Growing up
•
process 20 to 40+ employees in 6 months
• “people trump process”
product
• simple tools are effective tools
- Slide 55: Growing up
•
process 20 to 40+ employees in 6 months
• “people trump process”
product
• simple tools are effective tools
• radiate information across different
channels in the company
- Slide 56: Growing up
process excerpt from #last.fm irc channel
- Slide 57: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
- Slide 58: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
- Slide 59: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
- Slide 60: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
- Slide 61: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
- Slide 62: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
- Slide 63: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
- Slide 64: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
- Slide 65: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
3:45 PM
- Slide 66: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
3:45 PM
mokele: ? lookup track 11082618
- Slide 67: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
3:45 PM
mokele: ? lookup track 11082618
irccat: track.id(11082618) Zetan Spore ??? Subspace Distortion http://www.last.fm/music/Zetan+Spore/_/Subspace+Distortion (lastfm=t)
- Slide 68: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
3:45 PM
mokele: ? lookup track 11082618
irccat: track.id(11082618) Zetan Spore ??? Subspace Distortion http://www.last.fm/music/Zetan+Spore/_/Subspace+Distortion (lastfm=t)
pete_bug: jonty, can you please suspend PP campaign 3670?
- Slide 69: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
3:45 PM
mokele: ? lookup track 11082618
irccat: track.id(11082618) Zetan Spore ??? Subspace Distortion http://www.last.fm/music/Zetan+Spore/_/Subspace+Distortion (lastfm=t)
pete_bug: jonty, can you please suspend PP campaign 3670?
jonty: pete_bug, sure one sec.
- Slide 70: Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
3:45 PM
mokele: ? lookup track 11082618
irccat: track.id(11082618) Zetan Spore ??? Subspace Distortion http://www.last.fm/music/Zetan+Spore/_/Subspace+Distortion (lastfm=t)
pete_bug: jonty, can you please suspend PP campaign 3670?
jonty: pete_bug, sure one sec.
irccat: Trac: ticket #1526 (http://support.last.fm/trac/ticket/1526) "group recommendations are slow" created by muz.
- Slide 71: Growing up
process excerpt from #last.fm irc channel
osmotic communication
- Slide 72: Growing up
process
product
- Slide 73: Growing up
•
process 15 million unique users a month
product
- Slide 74: Growing up
•
process 15 million unique users a month
•
product plan for going global
- Slide 75: Growing up
•
process 15 million unique users a month
•
product plan for going global
• affiliations should enhance the user
experience
- Slide 76: Growing up
•
process 15 million unique users a month
•
product plan for going global
• affiliations should enhance the user
experience
• harness critical mass
- Slide 77: Growing up
•
process 15 million unique users a month
•
product plan for going global
• affiliations should enhance the user
experience
• harness critical mass
• embed your service in others
- Slide 78: Growing up
•
process 15 million unique users a month
•
product plan for going global
• affiliations should enhance the user
experience
• harness critical mass
• embed your service in others
• make the transition from service to
platform
- Slide 79: Growing up
product harness critical mass
- Slide 80: Growing up
product harness critical mass
- Slide 81: Growing up
product harness critical mass
user-generated content
- Slide 82: Growing up
product harness critical mass
network effects of socialization
user-generated content
- Slide 83: Growing up
product harness critical mass
network effects of socialization
affiliate services
user-generated content
- Slide 84: Growing up
product harness critical mass
network effects of socialization
user moderation
affiliate services
user-generated content
- Slide 85: Growing up
product harness critical mass
user-generated content
drives feature design
- Slide 86: Growing up
product
- Slide 87: Growing up
product embed your service in others
- Slide 88: Growing up
product embed your service in others
quilts
- Slide 89: Growing up
product embed your service in others
quilts charts
- Slide 90: Growing up
product embed your service in others
quilts charts radio
- Slide 91: Growing up
product embed your service in others
allow users to export
- Slide 92: Growing up
product
- Slide 93: Growing up
product transition from service to platform
- Slide 94: Growing up
product transition from service to platform
- Slide 95: Growing up
product transition from service to platform
- Slide 96: Growing up
product transition from service to platform
- Slide 97: Growing up
product transition from service to platform
openness is key to web
platforms
- Slide 98: Attention and “Myware”
- Slide 99: Attention and “Myware”
- Slide 100: Attention and “Myware”
When you pay attention to something (or don’t), data is created
- Slide 101: Attention and “Myware”
When you pay attention to something (or don’t), data is created
Myware: spying on yourself
- Slide 102: Attention and “Myware”
When you pay attention to something (or don’t), data is created
Myware: spying on yourself
Attention economy alters traditional meaning of “active user”
- Slide 103: Attention and “Myware”
When you pay attention to something (or don’t), data is created
Myware: spying on yourself
Attention economy alters traditional meaning of “active user”
Social web + attention aggregators = where the action is
- Slide 106: Attention data
Monetizing attention
- Slide 107: Attention data
Monetizing attention
1 - Microchunk it - Reduce the content to its simplest form.
- Slide 108: Attention data
Monetizing attention
1 - Microchunk it - Reduce the content to its simplest form.
2 - Free it - Put it out there without walls around it or strings on it.
- Slide 109: Attention data
Monetizing attention
1 - Microchunk it - Reduce the content to its simplest form.
2 - Free it - Put it out there without walls around it or strings on it.
3 - Syndicate it - Let anyone take it and run with it.
- Slide 110: Attention data
Monetizing attention
1 - Microchunk it - Reduce the content to its simplest form.
2 - Free it - Put it out there without walls around it or strings on it.
3 - Syndicate it - Let anyone take it and run with it.
4 - Monetize it - Put the monetization and tracking systems into the
microchunk.
- Slide 111: Attention data
Monetizing attention
1 - Microchunk it - Reduce the content to its simplest form.
2 - Free it - Put it out there without walls around it or strings on it.
3 - Syndicate it - Let anyone take it and run with it.
4 - Monetize it - Put the monetization and tracking systems into the
microchunk.
Fred Wilson, The Future of Media, November 2005
- Slide 112: Attention data
Monetizing attention
- Slide 113: Attention data
Monetizing attention
Powerplay is sponsored airtime
- Slide 114: Attention data
Monetizing attention
Powerplay is sponsored airtime
Individualized targeting based on attention history
- Slide 115: Attention data
Monetizing attention
Powerplay is sponsored airtime
Individualized targeting based on attention history
New attention metrics for reporting
- Slide 116: Attention data
Monetizing attention
Powerplay is sponsored airtime
Individualized targeting based on attention history
New attention metrics for reporting
No more CPMs - the ‘scrobble’ is our attention unit
- Slide 117: Attention data
Case study: tag cloud moderation
- Slide 118: Attention data
Case study: tag cloud moderation
Paris Hilton tag cloud, October 2006
- Slide 119: Attention data
Case study: tag cloud moderation
Paris Hilton tag cloud, October 2006 Paris Hilton tag cloud, February 2007
- Slide 120: Attention data
Case study: tag cloud moderation
- Slide 121: Attention data
Case study: tag cloud moderation
Censorship is not acceptable in a folksonomy
- Slide 122: Attention data
Case study: tag cloud moderation
Censorship is not acceptable in a folksonomy
Attention data does not lie
- Slide 123: Attention data
Case study: tag cloud moderation
Censorship is not acceptable in a folksonomy
Attention data does not lie
Weigh user tags by volume of attention user gives
to content
- Slide 124: Attention data
Case study: tag cloud moderation
Censorship is not acceptable in a folksonomy
Attention data does not lie
Weigh user tags by volume of attention user gives
to content
Attention earns trust
- Slide 125: Future of Last.fm
- Slide 126: Future of Last.fm
more
- Slide 127: Future of Last.fm
more
less
- Slide 128: Future of Last.fm
more
less
- Slide 129: Future of Last.fm
•
more more growth
less
- Slide 130: Future of Last.fm
•
more more growth
• more streamable music
less
- Slide 131: Future of Last.fm
•
more more growth
• more streamable music
less
• more ambient findability
- Slide 132: Future of Last.fm
•
more more growth
• more streamable music
less
• more ambient findability
• more personalization /
things you can do with your data
- Slide 133: Future of Last.fm
more
less
- Slide 134: Future of Last.fm
•
more fewer interfaces
less
- Slide 135: Future of Last.fm
•
more fewer interfaces
• fewer barriers to entry
less
- Slide 136: Future of Last.fm
•
more fewer interfaces
• fewer barriers to entry
less
• fewer gradients?
- Slide 137: Thank-you.
Questions?
matt@last.fm anil@last.fm