Last.fm - Lessons from building the World's largest social music platform

17,169 views
15,953 views

Published on

Anil Bawa & Matthew Ogle at FOWA, London

Published in: Education
2 Comments
63 Likes
Statistics
Notes
No Downloads
Views
Total views
17,169
On SlideShare
0
From Embeds
0
Number of Embeds
52
Actions
Shares
0
Downloads
1
Comments
2
Likes
63
Embeds 0
No embeds

No notes for slide

Last.fm - Lessons from building the World's largest social music platform

  1. Lessons from Building The World’s Largest Social Music Platform Matthew Ogle & Anil Bawa Cavia FoWA 2007
  2. How does it work?
  3. How does it work? Listen - to your own music - to Last.fm radio
  4. How does it work? Listen - to your own music - to Last.fm radio Share -your taste instead of files - automatic, via “scrobbling”
  5. How does it work? Listen - to your own music - to Last.fm radio Share -your taste instead of files - automatic, via “scrobbling” Discover - via your friends - via people with similar taste
  6. How does it work? Listen - to your own music - to Last.fm radio Share -your taste instead of files - automatic, via “scrobbling” Discover - via your friends - via people with similar taste
  7. 15 million tracks scrobbled / day
  8. 15 million tracks scrobbled / day (175 scrobbles per second)
  9. 15 million tracks scrobbled / day (175 scrobbles per second) Over 6 billion tracks scrobbled since 2003
  10. 15 million tracks scrobbled / day (175 scrobbles per second) Over 6 billion tracks scrobbled since 2003 10 million artists
  11. 15 million tracks scrobbled / day (175 scrobbles per second) Over 6 billion tracks scrobbled since 2003 10 million artists 70 million tracks
  12. 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
  13. 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
  14. 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
  15. Last.fm World Domination Headquarters Whitechapel, London, 2004
  16. Early Growth Lessons
  17. Early Growth Lessons Don’t overextend – scale with your growth, not before
  18. Early Growth Lessons Don’t overextend – scale with your growth, not before Make sure revenue sources scale with increased usage
  19. Early Growth Lessons Don’t overextend – scale with your growth, not before Make sure revenue sources scale with increased usage Google ads
  20. Early Growth Lessons Don’t overextend – scale with your growth, not before Make sure revenue sources scale with increased usage Google ads User subscriptions
  21. 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
  22. 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
  23. 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
  24. Audioscrobbler.com homepage, late 2004
  25. Openness and Growth
  26. Openness and Growth In 2004, we had a cool service, but needed data
  27. Openness and Growth In 2004, we had a cool service, but needed data Audioscrobbler Protocol 1.0
  28. Openness and Growth In 2004, we had a cool service, but needed data Audioscrobbler Protocol 1.0 Webservices for accessing users’ music profile data
  29. 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
  30. 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
  31. 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
  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 Together, provided “round trip” incentive for plugin developers Winamp, iTunes, WMP, Amarok Foobar, QCD, mpd, XMMS, mpg321 Noatun, Quod Libet, Jinzora, Ampache
  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 Winamp, iTunes, WMP, Amarok Foobar, QCD, mpd, XMMS, mpg321 Noatun, Quod Libet, Jinzora, Ampache (and dozens more)
  34. Openness and Users
  35. Openness and Users Involve non-technical users as well
  36. Openness and Users Involve non-technical users as well Promote a community around your application
  37. Openness and Users Involve non-technical users as well Promote a community around your application Talk to your users (bad news > no news)
  38. 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…
  39. Moving into the new office Old Street, London, May 2006
  40. Growing up
  41. process Growing up
  42. process product Growing up
  43. process product Growing up
  44. process product Growing up • 20 to 40+ employees in 6 months
  45. process product Growing up • 20 to 40+ employees in 6 months • “people trump process”
  46. process product Growing up • 20 to 40+ employees in 6 months • “people trump process” • simple tools are effective tools
  47. process product Growing up • 20 to 40+ employees in 6 months • “people trump process” • simple tools are effective tools • radiate information across different channels in the company
  48. Growing up process excerpt from #last.fm irc channel
  49. 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)
  50. 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
  51. 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'
  52. 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.
  53. 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..
  54. 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
  55. 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?
  56. 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
  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) 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
  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 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
  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' 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)
  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. 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?
  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.. 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.
  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 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.
  63. Growing up process excerpt from #last.fm irc channel osmotic communication
  64. process product Growing up
  65. process product Growing up • 15 million unique users a month
  66. process product Growing up • 15 million unique users a month • plan for going global
  67. process product Growing up • 15 million unique users a month • plan for going global • affiliations should enhance the user experience
  68. process product Growing up • 15 million unique users a month • plan for going global • affiliations should enhance the user experience • harness critical mass
  69. process product Growing up • 15 million unique users a month • plan for going global • affiliations should enhance the user experience • harness critical mass • embed your service in others
  70. process product Growing up • 15 million unique users a month • 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
  71. product Growing up harness critical mass
  72. product Growing up harness critical mass
  73. product Growing up harness critical mass user-generated content
  74. product Growing up harness critical mass user-generated content network effects of socialization
  75. product Growing up harness critical mass user-generated content network effects of socialization affiliate services
  76. product Growing up harness critical mass user-generated content user moderation network effects of socialization affiliate services
  77. product Growing up harness critical mass user-generated content drives feature design
  78. product Growing up
  79. product Growing up embed your service in others
  80. product Growing up embed your service in others quilts
  81. product Growing up embed your service in others quilts charts
  82. product Growing up embed your service in others quilts charts radio
  83. product Growing up embed your service in others allow users to export
  84. product Growing up
  85. product Growing up transition from service to platform
  86. product Growing up transition from service to platform
  87. product Growing up transition from service to platform
  88. product Growing up transition from service to platform
  89. product Growing up transition from service to platform openness is key to web platforms
  90. Attention and “Myware”
  91. Attention and “Myware”
  92. Attention and “Myware” When you pay attention to something (or don’t), data is created
  93. Attention and “Myware” When you pay attention to something (or don’t), data is created Myware: spying on yourself
  94. 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”
  95. 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
  96. Attention data Monetizing attention
  97. Attention data Monetizing attention 1 - Microchunk it - Reduce the content to its simplest form.
  98. 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.
  99. 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.
  100. 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.
  101. 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
  102. Attention data Monetizing attention
  103. Attention data Monetizing attention Powerplay is sponsored airtime
  104. Attention data Monetizing attention Powerplay is sponsored airtime Individualized targeting based on attention history
  105. Attention data Monetizing attention Powerplay is sponsored airtime Individualized targeting based on attention history New attention metrics for reporting
  106. 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
  107. Case study: tag cloud moderation Attention data
  108. Case study: tag cloud moderation Attention data Paris Hilton tag cloud, October 2006
  109. Case study: tag cloud moderation Attention data Paris Hilton tag cloud, October 2006 Paris Hilton tag cloud, February 2007
  110. Attention data Case study: tag cloud moderation
  111. Attention data Censorship is not acceptable in a folksonomy Case study: tag cloud moderation
  112. Attention data Censorship is not acceptable in a folksonomy Attention data does not lie Case study: tag cloud moderation
  113. Attention data Censorship is not acceptable in a folksonomy Attention data does not lie Weigh user tags by volume of attention user gives to content Case study: tag cloud moderation
  114. Attention data 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 Case study: tag cloud moderation
  115. Future of Last.fm
  116. more Future of Last.fm
  117. more less Future of Last.fm
  118. more less Future of Last.fm
  119. more less Future of Last.fm • more growth
  120. more less Future of Last.fm • more growth • more streamable music
  121. more less Future of Last.fm • more growth • more streamable music • more ambient findability
  122. more less Future of Last.fm • more growth • more streamable music • more ambient findability • more personalization / things you can do with your data
  123. more less Future of Last.fm
  124. more less Future of Last.fm • fewer interfaces
  125. more less Future of Last.fm • fewer interfaces • fewer barriers to entry
  126. more less Future of Last.fm • fewer interfaces • fewer barriers to entry • fewer gradients?
  127. Thank-you. Questions? matt@last.fm anil@last.fm

×