diff --git a/utils/feedparser.py b/utils/feedparser.py
index 92419bc4d..0d86db851 100644
--- a/utils/feedparser.py
+++ b/utils/feedparser.py
@@ -2390,7 +2390,7 @@ class _HTMLSanitizer(_BaseHTMLProcessor):
'template', 'title', 'toppadding', 'type', 'unselectable', 'usemap',
'urn', 'valign', 'value', 'variable', 'volume', 'vspace', 'vrml',
'width', 'wrap', 'xml:lang',
- 'allowfullscreen'])
+ 'allowfullscreen', 'autoplay', 'muted', 'playsinline'])
unacceptable_elements_with_end_tag = set(['script', 'applet', 'style'])
diff --git a/utils/twitter_fetcher.py b/utils/twitter_fetcher.py
index c00e03eb4..6137f66c2 100644
--- a/utils/twitter_fetcher.py
+++ b/utils/twitter_fetcher.py
@@ -227,6 +227,26 @@ class TwitterFetcher:
entities += "
" % media['media_url_https']
if 'photo' not in categories:
categories.add('photo')
+ if media['type'] == 'video':
+ if media.get('url') and media['url'] in tweet_text:
+ tweet_title = tweet_title.replace(media['url'], media['display_url'])
+ replacement = "%s" % (media['expanded_url'], media['display_url'])
+ if not replaced.get(media['url']):
+ tweet_text = tweet_text.replace(media['url'], replacement)
+ replaced[media['url']] = True
+ bitrate = 0
+ chosen_variant = None
+ for variant in media['video_info']['variants']:
+ if not chosen_variant:
+ chosen_variant = variant
+ if variant.get('bitrate', 0) > bitrate:
+ bitrate = variant['bitrate']
+ chosen_variant = variant
+ if chosen_variant:
+ entities += "