XML Shareable Playlist Format

XML Shareable Playlist Format

Infobox file format
name = XSPF
extension = .xspf
mime = application/xspf+xml
owner = [http://xiph.org/ Xiph.Org Foundation]
creatorcode =
genre = Playlist
containerfor =
containedby =
extendedfrom = XML
extendedto =

XML Shareable Playlist Format (XSPF), pronounced "spiff", is an XML-based playlist format for digital media, sponsored by the Xiph.Org Foundation. Lucas Gonze of Yahoo.com/Webjay.org originated the format in 2004.

XSPF is a data format for sharing the kind of playlist that can be played on a personal computer or portable device. In the same way that any user on any computer can open any web page, XSPF is intended to provide portability for playlists.

Features

* A playlist format like M3U or ASX
* MIME content-type of application/xspf+xml
* Patent-free (no patents by the primary authors)
* Specification under the Creative Commons Attribution-NoDerivs 2.5 license
* XML, like Atom
* Unicode support
* Cross-platform support

History

XSPF was created by an ad-hoc working group which kicked off in February 2004, achieved rough consensus on version 0 in April 2004, worked on implementations and fine tuning throughout summer and fall 2004, and declared the tuned version to be version 1 in January 2005.

XSPF is not yet an Internet standard, and is not a recommendation of any standards body besides Xiph.Org Foundation.

pecification

For detailed documentation, see the [http://xspf.org/xspf-v1.html XSPF Version 1 specification] .

Example of an XSPF 1.0 Playlist

Internal Example file:///C:/music/foo.mp3 External Example http://www.example.com/music/bar.ogg

Content Resolution

Traditionally playlists have been composed of file paths that pointed to individual titles. This allowed a playlist to be played locally on one machine or shared if the listed file paths were URLs accessible to more than one machine (i.e. on the web). XSPF's meta-data rich open format has permitted a new kind of playlist sharing called content resolution.

In the simplest terms, content resolution is the local recreation of a playlist based on meta-data. A content resolver will open XSPF playlists and search a catalog for every title with , and tags, then recreate the playlist with the available matching titles. A catalog may be a collection of media files on a local disk, a music subscription service like Yahoo! Music Unlimited or some other searchable archive. The end result are shareable playlists that are not tied to a specific collection or service.<p><strong>oftware</strong><p>* <A HREF="537139">Amarok</a><br>* <A HREF="1738760">Audacious</a><br>* <r>Herrie</r> - reading/writing XSPF playlists. XSPF is also used to autosave the playlist on shutdown.<br>* <A HREF="9426730">Serpentine</a> - <r>GNOME</r> application for writing audio CDs<br>* <A HREF="272463">VLC</a> (stand-alone player, available on every major platform)<br>* [<small><i>http://dir.visonair.tv/ Visonair.tv Stream Directory</i></small>] (uses XSPF for server list download)<br>* [<small><i>http://libspiff.sourceforge.net/ libSpiff</i></small>] (C++ XSPF library)<br>* [<small><i>http://www.visonair.tv/player.php Visonair.tv Player</i></small>] (supports XSPF files)<br>* [<small><i>http://www.clipland.com/PRO/playHome Clipland Playlists</i></small>] (onDemand video-playlists also in XSPF)<br>* [<small><i>http://php4xspf.berlios.de/ PHP4XSPF</i></small>] - a set of PHP classes that aims to make it as simple as possible to create XSPF files using PHP.<br>* [<small><i>http://xspf.rubyforge.org/ XSPF for Ruby</i></small>] - a pure-Ruby parser and generator library<br>* [<small><i>http://www.jointradio.com/ JointRadio</i></small>] - takes RSS feeds of MP3 files and creates XSPF files<br>* [<small><i>http://musicplayer.sourceforge.net/ XSPF Web Music Player</i></small>] - Open Source XSPF player (in the web browser)<p>Many more applications are listed on the XSPF site below.<p><strong> External links </strong><p>* [<small><i>http://xspf.org/ XSPF home page</i></small>] <br>* [<small><i>http://validator.xspf.org/ Online XSPF Validator</i></small>] <br>* [<small><i>http://www.nabble.com/MusicBrainz---Playlist-f10925.html XSPF discussion interface</i></small>] <br>* [<small><i>http://www.myplaylist.biz MyPlayList</i></small>] First XSPF picture / music playlist compiler </dd> <br /> <p id="TerminSourceInfo" class="src"> <em><span itemprop="source">Wikimedia Foundation</span>. <span itemprop="source-date">2010</span>.</em> </p> </div> </dl> </div> <div style="padding:5px 0px;"> <a href="https://games.academic.ru" style="color: green; font-size: 16px; margin-right:10px"><b>Игры ⚽</b></a> <b><a title='онлайн-сервис помощи студентам' href='https://homework.academic.ru/?type_id=9'>Поможем решить контрольную работу</a></b></div> <div id="socialBar_h"></div> <ul class="post-nav" id="TerminsNavigationBar"> <li class="prev"><a href="https://en-academic.com/dic.nsf/enwiki/943324" title="Alexander Seton, 3rd Earl of Dunfermline">Alexander Seton, 3rd Earl of Dunfermline</a></li> <li class="next"><a href="https://en-academic.com/dic.nsf/enwiki/943336" title="Prince Escalus">Prince Escalus</a></li> </ul> <div class="other-info"> <div class="holder"> <h3 class="dictionary">Look at other dictionaries:</h3> <ul class="terms-list"> <li><p><strong><a href="//es-academic.com/dic.nsf/eswiki/1230932">XML Shareable Playlist Format</a></strong> — (XSPF), es un formato de listas de reproducción basado en XML, patrocinado por la Fundación Xiph.org. Contenido 1 Introducción 2 Puntos clave 3 Especificaciones 4 …   <span class="src2">Wikipedia Español</span></p></li> <li><p><strong><a href="//de-academic.com/dic.nsf/dewiki/1532181">XML Shareable Playlist Format</a></strong> — (XSPF, gesprochen spiff , zu Deutsch etwa Gemeinsam benutzbares Wiedergabelistenformat in XML) ist ein Dateiformat für Wiedergabelisten digitaler Medien auf XML Basis, das mit Hilfe der Xiph.Org Foundation entwickelt wurde. XSPF ist ein… …   <span class="src2">Deutsch Wikipedia</span></p></li> <li><p><strong><a href="//dic.academic.ru/dic.nsf/ruwiki/755291">XML Shareable Playlist Format</a></strong> — XSPF: XML Shareable Playlist Format XSPF (”spiff”)™ Расширение файла: .xspf Тип Разработчик: Тип формата: Плейлист Расширение для: XML XML Shareable Playlist Format или XSPF (произносится как англ. spiff)  открытый формат данных для плейлистов,… …   <span class="src2">Википедия</span></p></li> <li><p><strong><a href="//de-academic.com/dic.nsf/dewiki/1115438">Playlist</a></strong> — Eine Wiedergabeliste (häufig auch Playlist) ist eine Liste von Liedern oder Videos in Abspielreihenfolge. Ursprünglich im Hörfunkbereich verwendet, bezeichnet er heute vorwiegend die Zusammenstellung von digitalen Musikstücken (siehe auch MP3),… …   <span class="src2">Deutsch Wikipedia</span></p></li> <li><p><strong><a href="//en-academic.com/dic.nsf/enwiki/1088747">List of XML schemas</a></strong> — This is a list of XML schemas in use on the Internet sorted by purpose. XML schemas can be used to create XML documents for a wide range of purposes such as syndication, general exchange, and storage of data in a standard format.Bookmarks* XBEL… …   <span class="src2">Wikipedia</span></p></li> <li><p><strong><a href="//de-academic.com/dic.nsf/dewiki/1532317">XSPF</a></strong> — XML Shareable Playlist Format (XSPF, gesprochen spiff , zu Deutsch etwa Gemeinsam benutzbares Wiedergabelistenformat in XML) ist ein Dateiformat für Wiedergabelisten digitaler Medien auf XML Basis, das mit Hilfe der Xiph.Org Foundation entwickelt …   <span class="src2">Deutsch Wikipedia</span></p></li> <li><p><strong><a href="//de-academic.com/dic.nsf/dewiki/1533931">Xspf</a></strong> — XML Shareable Playlist Format (XSPF, gesprochen spiff , zu Deutsch etwa Gemeinsam benutzbares Wiedergabelistenformat in XML) ist ein Dateiformat für Wiedergabelisten digitaler Medien auf XML Basis, das mit Hilfe der Xiph.Org Foundation entwickelt …   <span class="src2">Deutsch Wikipedia</span></p></li> <li><p><strong><a href="//en-academic.com/dic.nsf/enwiki/125465">List of file formats</a></strong> — This is an incomplete list, which may never be able to satisfy particular standards for completeness. You can help by expanding it with reliably sourced entries. See also: List of file formats (alphabetical) This is a list of file formats… …   <span class="src2">Wikipedia</span></p></li> <li><p><strong><a href="//de-academic.com/dic.nsf/dewiki/858602">Liste der Dateiendungen/X</a></strong> — In dieser Liste sind übliche Dateinamenserweiterungen aufgelistet, die in einigen Betriebssystemen (wie zum Beispiel Microsoft Windows) zur Unterscheidung von Dateiformaten verwendet werden. In anderen Betriebssystemen erfolgt die… …   <span class="src2">Deutsch Wikipedia</span></p></li> <li><p><strong><a href="//dic.academic.ru/dic.nsf/ruwiki/574301">XSPF</a></strong> — XSPF: XML Shareable Playlist Format Расширение .xspf MIME application/xspf+xml Разработан Xiph.Org Тип формата Плейлист Расширен из …   <span class="src2">Википедия</span></p></li> </ul> </div> </div> </div> </div> <div id="ad_bottom"> </div> <div id="footer"> <div id="liveinternet"> <!--LiveInternet counter--><a href="https://www.liveinternet.ru/click;academic" target="_blank"><img id="licntC2FD" width="31" height="31" style="border:0" title="LiveInternet" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAEALAAAAAABAAEAAAIBTAA7" alt=""/></a><script>(function(d,s){d.getElementById("licntC2FD").src= "https://counter.yadro.ru/hit;academic?t44.6;r"+escape(d.referrer)+ ((typeof(s)=="undefined")?"":";s"+s.width+"*"+s.height+"*"+ (s.colorDepth?s.colorDepth:s.pixelDepth))+";u"+escape(d.URL)+ ";h"+escape(d.title.substring(0,150))+";"+Math.random()}) (document,screen)</script><!--/LiveInternet--> </div> <div id="restrictions">18+</div> © Academic, 2000-2024 <ul> <li> Contact us: <a id="m_s" href="#">Technical Support</a>, <a id="m_a" href="#">Advertising</a> </li> </ul> <div> <a href="//partners.academic.ru/partner_proposal.php">Dictionaries export</a>, created on PHP, <div class="img joom"></div> Joomla, <div class="img drp"></div> Drupal, <div class="img wp"></div> WordPress, MODx. </div> </div> <div id="contextmenu"> <ul id="context-actions"> <li><a data-in="masha">Mark and share</a></li> <li class="separator"></li> <!--li><a data-in="dic">Look up in the dictionary</a></li--> <!--li><a data-in="synonyms">Browse synonyms</a></li--> <li><a data-in="academic">Search through all dictionaries</a></li> <li><a data-in="translate">Translate…</a></li> <li><a data-in="internet">Search Internet</a></li> <!--li><a data-in="category">Search in the same category</a></li--> </ul> <ul id="context-suggestions"> </ul> </div> <div id="sharemenu" style="top: 1075px; left: 240px;"> <h3>Share the article and excerpts</h3> <ul class="smm"> <li class="vk"><a onClick="share('vk'); return false;" href="#"></a></li> <li class="ok"><a onClick="share('ok'); return false;" href="#"></a></li> <li class="fb"><a onClick="share('fb'); return false;" href="#"></a></li> <li class="tw"><a onClick="share('tw'); return false;" href="#"></a></li> <li class="gplus"><a onClick="share('g+'); return false;" href="#"></a></li> <li class="mailru"><a onClick="share('mail.ru'); return false;" href="#"></a></li> <li class="lj"><a onClick="share('lj'); return false;" href="#"></a></li> <li class="li"><a onClick="share('li'); return false;" href="#"></a></li> </ul> <div id="share-basement"> <h5>Direct link</h5> <a href="" id="share-directlink"> … </a> <small> Do a right-click on the link above<br/>and select “Copy Link” </small> </div> </div> <script async src="/js/academic.min.js?150324" type="text/javascript"></script> <div id="ad_right"> <div class="banner"> <div class="EAC_ATFR_300n"></div> </div> <div class="banner sticky"> <div class="EAC_MIDR_300c"></div> </div> </div> </div> <!-- /59581491/bottom --> <div id='div-gpt-ad-bottom'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-bottom'); }); </script> </div> <div id='div-gpt-ad-4fullscreen'> </div> <br/><br/><br/><br/> <!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(70309897, "init", { clickmap:false, trackLinks:true, accurateTrackBounce:false }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/70309897" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> <!-- Begin comScore Tag --> <script> var _comscore = _comscore || []; _comscore.push({ c1: "2", c2: "23600742" }); (function() { var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true; s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js"; el.parentNode.insertBefore(s, el); })(); </script> <noscript> <img src="//b.scorecardresearch.com/p?c1=2&c2=23600742&cv=2.0&cj=1" /> </noscript> <!-- End comScore Tag --> <div class="dc-catfish-container desktop"> <div id="adfox_172794692683231701"></div> <script> window.yaContextCb.push(() => { Ya.adfoxCode.createAdaptive( { ownerId: 332443, containerId: "adfox_172794692683231701", params: { p1: 'dehfd', p2: 'heyb' }, onRender: function (event) { console.log("onRender", event); dcMakeCatfish("adfox_172794692683231701"); }, onLoad: function (event) { console.log("onLoad", event); }, onStub: function (event) { console.log("onStub", event); }, onError: function (event) { console.log("onError", event); }, }, ["desktop"], { tabletWidth: 830, phoneWidth: 480, isAutoReloads: false, } ); }); </script> <script> setInterval(function(){ window.Ya.adfoxCode.reload('adfox_172794692683231701', {onlyIfWasVisible: true}) }, 30000); </script> </div> <div id="yandex_rtb_R-A-680335-21"></div> <!-- РСЯ лента --> <script> // Observer const feed = document.getElementById('yandex_rtb_R-A-680335-21'); const callback = (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { Ya.Context.AdvManager.destroy({ blockId: 'R-A-680335-18' }) } }); }; const observer = new IntersectionObserver(callback, { threshold: 0 }); observer.observe(feed); </script> <!-- Full screen --> <!-- In-image --> <!-- Yandex.RTB R-A-680335-23 --> <script> window.addEventListener("load", () => { const render = (imageId) => { window.yaContextCb.push(() => { Ya.Context.AdvManager.render({ "renderTo": imageId, "blockId": "R-A-680335-23", "type": "inImage" }) }) } const renderInImage = (images) => { if (!images.length) { return } const image = images.shift() image.id = `yandex_rtb_R-A-680335-23-${Math.random().toString(16).slice(2)}` if (image.tagName === "IMG" && !image.complete) { image.addEventListener("load", () => { render(image.id) }, { once: true }) } else { render(image.id) } renderInImage(images) } renderInImage(Array.from(document.querySelectorAll("img"))) }, { once: true }) </script> <br><br><br><br><br> <br><br><br><br><br> </body> <link rel="stylesheet" href="/css/academic_v2.css?20210501a" type="text/css" /> <link rel="stylesheet" href="/css/mobile-menu.css?20190810" type="text/css" /> </html>