VIP Support Aersia + Foobar2000

Discussion in 'Playlists' started by Naso, Oct 21, 2013.

  1. Naso Gorgonzola League

    Hey guys, just wondering if anyone has found out a way to play Aersia through foobar rather than through the browser?
  2. bandwevil American Swiss League

    It's definitely possible, it can add internet locations and stream from them. You'd just need to set up some sort of script to find all the audio files and throw them into a playlist. I might do it if I'm not too lazy in the next few days.

    Of course you could always just download all of them if you don't care about streaming.
  3. copper Casu Marzu League

    I know this is an old thread, but I post in it anyways. I made the playlist file for VIP. The input source file is from vip.aersia.net/roster.xml.

    Download output.pls on MEGA

    You can use this playlist with VLC and Winamp.

    While I made this list, I notice that the XML is not valid. To make it valid do this:

    • Change "&" on titles to "&"
    • Change "&" on all location URLs to "%26"
    • There is an incomplete location end tag, somewhere. :p
    • Change "© & ℗" to "(c)"

    In case someone want to rebuild the list, here is the python code I used.

    Track parser.py (open)
    Code:
    #!/usr/local/bin/python2.7
        
    from xml.dom import minidom
    xmldoc = minidom.parse('roster.xml')
    tracklist = xmldoc.getElementsByTagName('track') 
    counter = 0
    outputFile=""
    outputFile += "[playlist]\n"
    outputFile += "NumberOfEntries=%d\n" % len(tracklist)
    for s in tracklist :
        counter = counter + 1
        locationURL = (s.getElementsByTagName("location")[0].childNodes[0].nodeValue)
        creator = (s.getElementsByTagName("creator")[0].childNodes[0].nodeValue)
        title = (s.getElementsByTagName("title")[0].childNodes[0].nodeValue)
        outputFile += ("File%d=%s\n" % (counter,locationURL))
        outputFile += ("Title%d=%s - %s\n" % (counter,creator,title))
    # print outputFile
    file = open("output.pls", "w")
    file.write(outputFile)
    file.close()
  4. Cats777 ┬─┬ノ( º _ ºノ)

    It just occurred to me that PLS files are just text files. Pretty damn slick. I might just make something that will automatically create a PLS file server-side, then people could just load that up directly.
  5. copper Casu Marzu League

    Thats going to be cool, Cats.

    I was thinking about adding the playlist to https://code.google.com/p/navi-x/. It's a playlist online manager for streaming media. Unfortunateley the service is down, because they are moving to new servers. A drawback about navi-x is that they use their own playlist format.

    PLX example.plx (open)
    Code:
    version=1
    background=http://www.adultswim.com/shows/img/brak.jpg
    title=[AS] adultswim
    description=[AS] adultswim playlist/description
    
    type=playlist
    name=Sorted by user-assigned order
    icon=http://www.navixtreme.com.nyud.net/images/icons/2downarrow.png
    URL=http://www.navixtreme.com/playlist/47188/test.plx?action=sortsel&cur=ord
    
    # 701401
    type=video
    name=Aqua Teen Hunger Force miniclip 1
    thumb=http://www.adultswim.com/clips/img/aquateen/1.jpg
    URL=http://cdn.turner.com/wmedia/aqua_teen_01.wmv
    player=default
    rating=-1.00
    
    # 701402
    type=video
    name=Aqua Teen Hunger Force miniclip 2
    thumb=http://www.adultswim.com/clips/img/aquateen/2.jpg
    URL=http://cdn.turner.com/wmedia/aqua_teen_02.wmv
    player=default
    rating=-1.00


    The playlists are explored through a plugin on XBMC. You could configure if the playlist is public or private(just for your IP).

    Goodbye!
  6. Cats777 ┬─┬ノ( º _ ºノ)

    Oh yeah, I remember XBMC when I was trying to find out if it worked with Chromecast. I forgot what the answer was, because I discovered I didn't really need either of them.

    Navi-X looks like a fancy way to get the playlist across all devices. The only question is: Is it possible to import the playlist automatically from the server? If not, it would create extra steps of logging into the site itself and uploading the playlist manually every time there's an update. That would be a total bummer.
  7. Nackida American Swiss League

    Many thanks to copper for doing most of the work on this one, but I thought it would be nice to automate the entire process. As long as you have python installed, this will create the latest playlist file.

    Updated track parser.py (open)
    Code:
    #!/usr/bin/python
        
    from xml.dom import minidom
    import os
    import urllib
    
    # download roster.xml
    urllib.urlretrieve("http://vip.aersia.net/roster.xml", "roster.xml")
    
    # convert to roster-fix.xml
    filein = open("roster.xml", "r")
    fileout = open("roster-fix.xml", "w")
    outputFile = ""
    outputFile += filein.readline()
    outputFile += filein.readline()
    outputFile += filein.readline()
    while filein.readline():
        line1 = filein.readline()
        creator = filein.readline()
        creator = creator.replace("&", "&")
        title = filein.readline()
        title = title.replace("© & ℗", "(c)")
        title = title.replace("&", "&")
        location = filein.readline()
        location = location.replace("&", "%26")
        line5 = filein.readline()
        outputFile += line1
        outputFile += creator
        outputFile += title
        outputFile += location
        outputFile += line5
    
    fileout.write(outputFile)
    filein.close()
    fileout.close()
    
    # parse roster-fix.xml
    xmldoc = minidom.parse('roster-fix.xml')
    tracklist = xmldoc.getElementsByTagName('track') 
    counter = 0
    outputFile=""
    outputFile += "[playlist]\n"
    outputFile += "NumberOfEntries=%d\n" % len(tracklist)
    for s in tracklist :
        counter = counter + 1
        locationURL = (s.getElementsByTagName("location")[0].childNodes[0].nodeValue)
        creator = (s.getElementsByTagName("creator")[0].childNodes[0].nodeValue)
        title = (s.getElementsByTagName("title")[0].childNodes[0].nodeValue)
        outputFile += ("File%d=%s\n" % (counter,locationURL))
        outputFile += ("Title%d=%s - %s\n" % (counter,creator,title))
    
    # print outputFile
    file = open("output.pls", "w")
    file.write(outputFile)
    file.close()
    
    # cleanup
    os.remove("roster.xml")
    os.remove("roster-fix.xml")
    

Share This Page