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))