diff --git a/lib/archival.py b/lib/archival.py index 73d7449..7909c8a 100644 --- a/lib/archival.py +++ b/lib/archival.py @@ -13,6 +13,23 @@ def archive_media(media_url): return filename +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'] + + def archive_media_status(status): try: if(not ('retweeted_status' in status._json.keys())): @@ -25,7 +42,7 @@ def archive_media_status(status): archive_media(media_dict['media_url'])) elif(media_dict['type'] == 'video'): archive_filenames.append(archive_media( - media_dict['video_info']['variants'][-1:][0]['url'])) + select_video_variant(media_dict['video_info']['variants']))) return archive_filenames except Exception as e: print(e)