This document describes some of the possible future uses of the new MAGMA specs. An improvement would be to make the use of multiple streams possible. For that we'd need to begin the list of magnets with "---" and end it with three dots "...". Also it would be possible to not only include information about every single magnet by simply commenting in the scalar (outside the double quotes, and following the specs, comments should also be ignored in double-quoted magnets, so evn inside those commenting would be possible), but also to include comments for only specific "streams", which can portion the list of magnets into different lists while staying in the same document. A comment above the first stream would be valid for all streams, while a comment inside a stream would only be valid for that single stream. A comment in a scalar (a topic) would be valid for that single file. Comments could also be grouped by naming them (beginning the line with a name and a colon ("nominator: information"). Any whitespaces directly following the colon can be ignored (as they will most probable be placed for greater readability). For example: "length: " or "bitrate: ", or even "time-to-play: ") (I didn't find a better word than "naming", maybe you do). Nominators for specific uses should be discssed before using them. For testing purposes undiscussed nominators should start with "x-". For example: "x-decryption-key: ". By indenting the line following the comment one step further, a comment lasts, till something follows, which is less indented, so comments could span multiple lines and might even be used to carry lyrics to songs or guitar-tabs or even the subtitles to videos with time-stamps (a comment can be partitioned with farther indented lines which can be named, when a colon is placed after the comment (and is the last non-whitespace character in that line). For example: artist: : homepage: http://blah e-mail: my@electronic.mail This way the information becomes another nominator. Note that all of those would be simple extensions of the first line, if the colon was missing after the first line. Also outside the quoted part could be additional comments, which would not have to be used with the quoting mechanism. I'll show you an example with some more Information in it (imagine the first lines as being only one, my mail-program cuts the lines): ------- #MAGMAv0.2 magnet:?mt=.&dn=draketos-magma-spielliste.magma&as=http://draketo.de/inhalt/lieder/draketos-magma-spielliste.magma # this is the MAGMA-playlist from my website. I hope you enjoy # listening to the songs! source-page: http://draketo.de --- playlist-name: Fantasy and Science Fiction Songs by little dragon comment: These are songs which I either wrote myself or which I like so much, that I simply had to record them. list: - "magnet:?xt=urn:sha1:MCH2HGBTFRKMGH5LSVH5MKLCCBBQ7XAP &dn=Dildo%20Backenspalter.mp3 &xs=http://dlaikar.de/arnebab/musik/dildo-backenspalter.mp3" length-ms: 90151 bitrate-KBit: 160 size-Bytes: 3005822 artist: Arne Babenhauserheide: nickname: Draketo homepage: http://draketo.de instruments: voice age-years: 21 birthdate-yyyy-mm-dd: 1982-05-26 composer: text: Achim Hiltrop: nickname: Gallagher homepage: http://www.clou-gallagher.de melody: Arne Babenhauserheide: nickname: Draketo homepage: http://draketo.de - "magnet:?xt=urn:sha1: &dn= &xs=" length-ms: artist: --- # Here we instantly begin a new stream, that means in this case: # a new playlist. # I'll use only one space for indenting here, # even though multiple spaces look better. playlist-name: other songs comment: These just didn't fit in the other cathegories list: # we could use any name, or none at all, as it fits us. # I would suggest using list, as it doesn't name a file-type. # this comment is inside "list" as the "#" is indented by one space. - "magnet:?xt=urn:sha1:PX2AN5FPSJGORDBQ2YIV3LRR2SRLP5LY &dn=A%20Curse%20upon%20those%20Parents.mp3 # Yes, this is indented, &xs=http://10.0.1.3:6346/uri-res/N2R? # even if only by a single space. urn:sha1:PX2AN5FPSJGORDBQ2YIV3LRR2SRLP5LY" artist: Draketo: real-name: Arne Babenhauserheide nickname: Draketo (which means small dragon) some-other-thing-we-don't-really-need-to-know-about-him: uhm, yes... :-) - "magnet?xt=urn:sha1: &dn= &xs=" artist: ... # the three dots end a stream/playlist without beginning another one. # Here the file could end, or you could add # some additional general information about all the playlists/the MAGMA-file. # But that information would only be read after the file was processed, # I assume, # so writing those information at the beginning seems more useful to me. # Still I'm sure there might be uses for this. # We could also begin anotherstream in here. # Then the additional information could be added one by one between the # playlists (maybe for a live-feed or such). --- playlist-name: just some addition creator-comment: Just wanting to show off, that we could carry far more information with the format extended like this. list: - "magnet:?xt=urn:sha1: # the "- " is indented by one space &dn=" # which makes it part of the "list" MIME-type: video/mpeg subtitles: - time: 0h0m15s00ms text: Hello miss Pats. - time: 0h0h20s00ms text: Who are you, sucker? - time: 0h0m22s00ms text: I am a fan. - time: 0h0m24s00ms text: Fuck off! - time: 0h0m27s00ms text: Darn, she did it again! - time: 0h0m35s00ms text: Thus ends another miserable episode in the life of Bob Bobson, fan of heart, but to his peril only of his own. # this way, MAGMA-Files could be used for far more than just getting # the files. You could send someone a list with the subtitles, which # gets the video itself, either from your local disk or from # filesharing networks. # This comment is inside the video-magnet. ... # End of Stream. ------- # For the time-field we used the format (in C/C++-syntax): # "%dh%dm%ds%dms" # Means for C: # printf("%dh%dm%ds%dms\n", hour, minute, seconds, milliseconds); I hope this example wasn't far too long. What do you think about this? Any suggestions? Some other thing to consider, quoted here: ----- If you really wanted to get YAMLish, you could define a encoding of Magnet onto YAML mappings, but this makes creating MAGMA-files harder for Users. Thus, --- !draketo.de,2004/magnet#0.2 source: http://draketo.de/ title: Lieblingslieder list: - xt: urn:sha1:JVWTLUSAKOBXACSFJW5DXCTJ64YHW6VN dn: The Magock.mp3 as: http://dlaikar.de/arnebab/musik/magock.mp3 - xt: urn:sha1:MCH2HGBTFRKMGH5LSVH5MKLCCBBQ7XAP dn: Dildo Backenspalter.mp3 as: http://dlaikar.de/arnebab/musik/dildo-backenspalter.mp3 ... It'd be quite trivial to covert between a YAML mapping and a magnet URI. For python you'd just use the urlencode method... ;) This way though, we couldn't just copy already existent magnet-uris, though. -----