We know about these binary things, right?
At first, Mug is using links to media such like images, video, audio and web pages described as URL. These links are called media list in Mug system. Mug hosts(explained below) provide media list to Mug. Media list conforms to FM(Fountain Message) protocol format.
All applications related to Mug are as followings :
-
Raindrop ; Media list host web site. (this site!)
Content creators can submit a media list and its specific location to Raindrop. In later, if a user runs Mug, it requests media list corresponding to location of the user to Raindrop server. (Media list is just URL link to media. Real media files should be served through HTTP, by another HTTP server)
-
Sam ; Media list host for local network.
Periodically, Sam broadcasts media lists to local network by using UDP broadcast. Sam also host a simple web server to serve media files to Mug. Content creators could set up Sam on their local network(In most case - it'll be wireless network) and allow Mug to browse media files from Sam.
-
Mug ; Client program for Mug.
Mug can browse media lists on Sam and Raindrop, and play(or browse) media files within that media lists. So far, Mug supports iOS and Android.
Here is an example of media list. It's JSON format text that conforms to FM protocol :
{"FM":{
"MLST":{
"MLST_ID":"FE0AE058EC8E_1",
"lastUpdatedTime":1306401777,
"latitude":63.222231,
"longitude"122.211414,
"MLSTData":{
"name":"Sample media list",
"bannerImageURL":"http://192.168.0.1:8081/test.jpg",
"baseURL":"http://192.168.0.1:8081/",
"mediaFolderList":[
{"name":"Folder A",
"mediaFolderList":[
{"name":"Folder A-1",
"mediaList":[
{"name":"File A-1-1", "url":"File A-1-1.mp3"},
{"name":"File A-1-2", "url":"File A-1-2.mp3"}
]
}
],
"mediaList":[
{"name":"File A-1","url":"File A-1.mp3"},
{"name":"File A-2","url":"File A-2.mp3"}
]
},
{"name":"Folder B",
"mediaList":[
{"name":"File B-1","url":"File B-1.mp3"},
{"name":"File B-2","url":"File B-2.mp3"}
]
}
]
}
}
}
}
Sam is open-source program currently, so you could look into its structure, behaviors and anything you want. If you're trying to make any Mug-related program, you could refer this program to make it.