import sys,json,requests,pdb, xml2json

_, SONG_ID,SONG_TITLE,SONG_ARTIST,SONG_IMG,GOOGLE_API_KEY = sys.argv
caption_candidates = json.loads(requests.get("https://www.googleapis.com/youtube/v3/captions/?part=snippet&videoId=%s&key=%s"%(SONG_ID,GOOGLE_API_KEY)).text)['items']

song_info = {
    'title':SONG_TITLE,
    'artist':SONG_ARTIST,
    'img':SONG_IMG,
    'languages':[str(i['snippet']['language']) for i in caption_candidates]
}

for i in song_info['languages']:
    obj = xml2json.make_json_from_xml(i, SONG_ID)
    with open(obj['lang'] + '.json', 'w') as f:
        f.write(obj['json'])

with open('info.json', 'w') as f:
    f.write(json.dumps(song_info))

    snip = i['snippet']
    json_to_write['languages'].append(str(snip['language']))

und_is_en = False
GB_is_en = False

json_to_write['languages'] = filter(lambda x: x in ['en', 'und', 'vi', 'es', 'fr', "en-GB", 'es-MX', 'en-US', 'pt-BR', 'ja'], json_to_write['languages'])

if 'und' in json_to_write['languages'] and 'en' in json_to_write['languages']:
    del json_to_write['languages'][json_to_write['languages'].index('und')]
elif 'und' in json_to_write['languages'] and not 'en' in json_to_write['languages']:
    json_to_write['languages'].append('en')
    del json_to_write['languages'][json_to_write['languages'].index('und')]
    und_is_en = True

if 'en-GB' in json_to_write['languages'] and 'en' in json_to_write['languages']:
    del json_to_write['languages'][json_to_write['languages'].index('en-GB')]
elif 'en-GB' in json_to_write['languages'] and not 'en' in json_to_write['languages']:
    json_to_write['languages'].append('en')
    del json_to_write['languages'][json_to_write['languages'].index('en-GB')]
    GB_is_en = True

for i in json_to_write['languages']:
    print '______________________'
    print i, SONG_ID
    xml2json.make_json_from_xml(i, SONG_ID, und_is_en, GB_is_en)
    print "----------------------"

#with open('song.json', 'w') as f:
#    f.write(json.dumps(json_to_write))