Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Mopidy
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Stein Magnus Jodal
May 05, 2012
Programming
270
2
Share
Mopidy
Introduction to Mopidy I held at the Iterate Weekly Breakfast Meeting 2010-03-10
Stein Magnus Jodal
May 05, 2012
More Decks by Stein Magnus Jodal
See All by Stein Magnus Jodal
Concurrency in Mopidy
jodal
1
140
DjangoCon Europe 2011
jodal
1
200
Guice
jodal
2
240
Introduksjon til Git
jodal
1
130
Terminalbruk
jodal
1
95
Hva alle utviklere må vite om tegnsettenkoding
jodal
1
2k
Other Decks in Programming
See All in Programming
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
190
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.8k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
230
Claspは野良GASの夢をみるか
takter00
0
150
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
270
ふつうのFeature Flag実践入門
irof
7
3.5k
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
440
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
180
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
330
Stage 3 Decorators でできること / できないこと / TSKaigi 2026
susisu
1
1.5k
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.2k
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1.3k
Featured
See All Featured
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
44k
Fireside Chat
paigeccino
42
3.9k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
260
Site-Speed That Sticks
csswizardry
13
1.2k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
530
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
270
Mind Mapping
helmedeiros
PRO
1
230
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
590
Abbi's Birthday
coloredviolet
2
7.8k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Transcript
Mopidy MPD server with Spotify support www.mopidy.com
«når skal vi starte på spotify mpd serveren da? :P»
Johannes, 2009-12-23
What is MPD?
What is MPD? Short for Music Player Daemon
What is MPD? Server - Protocol - Client
What is MPD? The server plays music from it's local
disk
What is MPD? The client controls playback and playlists, but
got nothing to do with the actual audio data
What is MPD? The protocol is badly documented and inconsistenly
used by the clients But it ain't that huge
What is Spotify?
What is Spotify? 99 kr per month in exchange for
all the music you'll ever need in high quality on PC and mobile Including: Windows, Mac, Linux, iPhone, Android, S60 Excluding: Beatles, Pink Floyd, Led Zeppelin, Frank Zappa
What is Spotify? Free ad-financed version available, but we're going
Premium iPhone, Android, S60 and all the open source solutions requires a Premium subscription
What is MPD+Spotify?
What is MPD+Spotify? Mopidy
What is MPD+Spotify? www.mopidy.com github.com/jodal/mopidy
Where to begin?
Where to begin? Extend existing MPD server? It's old, huge
and we're not C coders Not yet, at least
Where to begin? Reimplement then Just the server! No way
we're doing all those clients. And no way we're decoding music ourselves.
Where to begin? Scala and Actors? Enough to learn in
implementing an MPD server and Spotify integration
Where to begin? Scala and Actors? Python is known ground
Where to begin? Spotify integration?
Where to begin? Spotify integration? despotify is an open, reverse
engineered Spotify library C, Linux and OS X, not very active Python wrapper named spytify (thanks to Jørgen P. Tjernø)
Where to begin? Spotify integration? libspotify is the closed source,
but official library C, Linux 32-bit only (now 64-bit too) Python wrapper named pyspotify (thanks to Doug Winter)
Where to begin? Spotify integration? Lets do both! We don't
know what problems will arise, so we keep our options open
Architecture?
Architecture? Creating it as we walk, refactoring early and often
Architecture? Frontends - Backends - Mixers Clear APIs and loose
coupling
Architecture? Frontends work with protocols and parsing
Architecture? We got one frontend this far: Mpd{Server,Session,Handler}
Architecture? Backends work with playing music
Architecture? We got two backends: {Despotify,Libspotify}Backend
Architecture? And a third is underway: GstreamerBackend It plays music
from local disc, like the original MPD server (thanks to Thomas Adamcik)
Architecture? Mixers are the latest addition They work with volume
control
Architecture? We got two mixers: {Alsa,Osa}Mixer One for Linux and
one for OS X (the last one actually includes two lines of AppleScript)
Code?
Code? github.com/jodal/mopidy GPLv2 license
None
Tests?
Tests? 202 and counting Runs in 0.4s >100 new with
the gstreamer branch
Documentation?
Documentation? Lots! www.mopidy.com
None
Talk?
Talk? #mopidy at irc.freenode.net Currently eight humans* and a bot
* 6 Norwegians, 1 Swede, 1 Briton
Future?
Future? Version 0.1 We need to implement this release early,
release often thingy
Future? Replace libspotify with libopenspotify? Identical API, open source, adds
OS X and Windows support Should be a drop-in replacement with only benefits
Future? GstreamerBackend So we can replace the original MPD server
Future? Multiple backends at the same time Mix tracks from
Spotify and disk in the same playlist
Future? Bonjour/Avahi here-I-am Broadcast our existence so clients can automagically
find the server
Future? A non-MPD frontend?
Future? Icecast streams? Server streams music to somewhere else
Future? Squeezebox support? Deliver music to Squeezebox devices
Future? AirPort Express support? Deliver music to AirPort Express devices
Future? NAD/Denon mixer Control volume on amplifiers through RS-232
Future? Distribution infrastructure Python packaging, Debian packaging, Homebrew recipies, build
server
[email protected]
, 2010-03-09 www.mopidy.com