from __future__ import print_function, unicode_literals import pandas as pd import os import subprocess def open_link_lib_in_foobar(): if os.name == 'nt': foo_cmd = r'"C:\Program Files (x86)\foobar2000\foobar2000.exe"'# else: foo_cmd = r'wine ~/.wine/drive_c/Program\ Files\ \(x86\)/foobar2000/foobar2000.exe' data = pd.read_excel('youtube-links.xlsx') data = data[pd.notnull(data.active)] data['fb2k_title'] = data.T.apply(lambda x: '{0} - [{1}] {2}'.format(*x[['fb2k_artist', 'fb2k_date', 'fb2k_album']].tolist())) data = data.apply(lambda x: x.map(lambda y: (str(x.name)+'='+str(y)).replace(' ','%20').replace('\'','%27'))) data.reset_index(inplace=1) data = data[pd.notnull(data.active)].drop('active', axis=1).T.apply(lambda x: '&'.join(x)).tolist() from pprint import pprint pprint(data) subprocess.call(foo_cmd + r' /command:"New Playlist" /add ' + ' '.join(data)) def write_existing_links(): links = [ '3dydfy://www.youtube.com/watch?v=wo8aSo5Tv1E&fb2k_artist=Air&fb2k_album=Moon%20Safari&fb2k_title=Full%20Album&fb2k_date=1998&fb2k_genre=Electronica', '3dydfy://www.youtube.com/watch?v=pmuFYVtV7d8&fb2k_artist=Baroness&fb2k_album=Blue%20Record&fb2k_title=Full%20Album&fb2k_date=2009&fb2k_genre=Metal', '3dydfy://www.youtube.com/watch?v=B1hd5YCn9kE&fb2k_artist=Carcass&fb2k_album=Heartwork&fb2k_title=Full%20Album&fb2k_date=1993&fb2k_genre=Metal', '3dydfy://www.youtube.com/watch?v=AFCGyucLses&fb2k_artist=Dissection&fb2k_album=The%20Somberlain&fb2k_title=Full%20Album&fb2k_date=1993&fb2k_genre=Metal', '3dydfy://www.youtube.com/watch?v=6qoZXKHsHrs&fb2k_artist=Dragonforce&fb2k_album=Inhuman%20Rampage&fb2k_title=Full%20Album&fb2k_genre=Metal', '3dydfy://www.youtube.com/watch?v=cCBMPdqDAS0&fb2k_artist=Focus&fb2k_album=Moving%20Waves&fb2k_title=Full%20Album&fb2k_date=1971&fb2k_genre=Rock', '3dydfy://www.youtube.com/watch?v=xI5ARFrBqAA&fb2k_artist=Focus&fb2k_album=Hamburger%20Concerto&fb2k_title=Full%20Album&fb2k_date=1974&fb2k_genre=Rock', '3dydfy://www.youtube.com/watch?v=MWtV4DACpVg&fb2k_artist=Jethro%20Tull&fb2k_album=A%20Passion%20Play&fb2k_title=Full%20Album&fb2k_date=1973&fb2k_genre=Rock', '3dydfy://www.youtube.com/watch?v=FbP-RrveKjU&fb2k_artist=Mastodon&fb2k_album=Once%20More%20%27Round%20the%20Sun&fb2k_title=Full%20Album&fb2k_date=2014&fb2k_genre=Metal', '3dydfy://www.youtube.com/watch?v=hdzJPCIAIdA&fb2k_artist=Origin&fb2k_album=Origin&fb2k_title=Full%20Album&fb2k_date=2000&fb2k_genre=Metal', '3dydfy://www.youtube.com/watch?v=o2LKnTiUv8Q&fb2k_artist=Origin&fb2k_album=Antithesis&fb2k_title=Full%20Album&fb2k_date=2008&fb2k_genre=Metal', '3dydfy://www.youtube.com/watch?v=dF5-yy-jopA&fb2k_artist=Pestilence&fb2k_album=Spheres&fb2k_title=Full%20Album&fb2k_date=1993&fb2k_genre=Metal', '3dydfy://www.youtube.com/watch?v=WxXIEE-kpq8&fb2k_artist=Psycroptic&fb2k_album=The%20Scepter%20of%20the%20Ancients&fb2k_title=Full%20Album&fb2k_date=2003&fb2k_genre=Metal', '3dydfy://www.youtube.com/watch?v=z9ZpI8Q0qkk&fb2k_artist=Riverside&fb2k_album=Rapid%20Eye%20Movement&fb2k_title=Full%20Album&fb2k_date=2007&fb2k_genre=Metal', '3dydfy://www.youtube.com/watch?v=3zrbhzjo6O0&fb2k_artist=Riverside&fb2k_album=Anno%20Domini%20High%20Definition&fb2k_title=Full%20Album&fb2k_date=2009&fb2k_genre=Metal', '3dydfy://www.youtube.com/watch?v=2lfBp_jBoIE&fb2k_artist=Rory%20Gallagher&fb2k_album=BBC%20Sesseions&fb2k_title=Full%20Album&fb2k_date=1999&fb2k_genre=Rock', '3dydfy://www.youtube.com/watch?v=M7ZipHFZTaY&fb2k_artist=Spiral%20Architect&fb2k_album=A%20Sceptic%27s%20Universe&fb2k_title=Full%20Album&fb2k_date=2000&fb2k_genre=Metal', '3dydfy://www.youtube.com/watch?v=eEsmxJvgcjU&fb2k_artist=The%20Sword&fb2k_album=Age%20of%20Winters&fb2k_title=Full%20Album&fb2k_date=2006&fb2k_genre=Metal', ] links = pd.DataFrame([dict(entry.split('=') for entry in link.replace('3dydfy://','https://').replace('%20', ' ').split('&') ) for link in links ]) links = links.rename(columns = {'https://www.youtube.com/watch?v': 'index'}) links['index'] = links['index'].map(lambda x: 'https://www.youtube.com/watch?v='+x) links.set_index('index', inplace=1) del links.index.name links['fb2k_artist fb2k_album fb2k_title fb2k_date fb2k_genre'.split()].to_excel('links_out.xlsx') open_link_lib_in_foobar() #~ write_existing_links()