2020-04-24 14:38:39 -05:00
|
|
|
#!/usr/bin/python3
|
|
|
|
|
|
|
|
from twitter.twitter_utils import parse_media_file
|
|
|
|
|
2020-04-25 03:19:32 -05:00
|
|
|
|
|
|
|
def archive_media(media_url):
|
|
|
|
temp_media_file, filename, size, media_type = parse_media_file(
|
|
|
|
media_url)
|
|
|
|
with open(f'data/{filename}', 'bw+') as archive_file:
|
|
|
|
archive_file.writelines(temp_media_file.readlines())
|
|
|
|
archive_file.close()
|
|
|
|
temp_media_file.close()
|
2020-04-25 15:52:51 -05:00
|
|
|
return filename
|
2020-04-25 03:19:32 -05:00
|
|
|
|
|
|
|
|
2020-04-27 21:07:28 -05:00
|
|
|
def filter_out_bad_content_type(video_variant_list):
|
|
|
|
filtered_variant_list = []
|
|
|
|
for video in video_variant_list:
|
|
|
|
if(video['content_type'] == 'video/mp4'):
|
|
|
|
filtered_variant_list.append(video)
|
|
|
|
return filtered_variant_list
|
|
|
|
|
|
|
|
|
|
|
|
def select_video_variant(video_variant_list):
|
|
|
|
filtered_variant_list = filter_out_bad_content_type(video_variant_list)
|
|
|
|
highest_bitrate_variant = filtered_variant_list[0]
|
|
|
|
for video in filtered_variant_list:
|
|
|
|
if(highest_bitrate_variant['bitrate'] < video['bitrate']):
|
|
|
|
highest_bitrate_variant = video
|
|
|
|
return highest_bitrate_variant['url']
|
|
|
|
|
|
|
|
|
2020-04-25 03:19:32 -05:00
|
|
|
def archive_media_status(status):
|
2020-04-24 14:38:39 -05:00
|
|
|
try:
|
2020-04-25 03:19:32 -05:00
|
|
|
if(not ('retweeted_status' in status._json.keys())):
|
|
|
|
if('extended_entities' in status._json.keys()):
|
|
|
|
if('media' in status.extended_entities.keys()):
|
2020-04-25 15:52:51 -05:00
|
|
|
archive_filenames = []
|
2020-04-25 03:19:32 -05:00
|
|
|
for media_dict in status.extended_entities['media']:
|
|
|
|
if(media_dict['type'] == 'photo'):
|
2020-04-25 15:52:51 -05:00
|
|
|
archive_filenames.append(
|
|
|
|
archive_media(media_dict['media_url']))
|
2020-04-25 03:19:32 -05:00
|
|
|
elif(media_dict['type'] == 'video'):
|
2020-04-25 15:52:51 -05:00
|
|
|
archive_filenames.append(archive_media(
|
2020-04-27 21:07:28 -05:00
|
|
|
select_video_variant(media_dict['video_info']['variants'])))
|
2020-04-25 15:52:51 -05:00
|
|
|
return archive_filenames
|
2020-04-24 14:38:39 -05:00
|
|
|
except Exception as e:
|
|
|
|
print(e)
|
2020-04-25 15:52:51 -05:00
|
|
|
return ''
|