diff --git a/src/controller/buffers/twitterBuffers.py b/src/controller/buffers/twitterBuffers.py index 03657e7c..b88fbe43 100644 --- a/src/controller/buffers/twitterBuffers.py +++ b/src/controller/buffers/twitterBuffers.py @@ -553,7 +553,7 @@ class baseBufferController(baseBuffers.buffer): return sound.URLPlayer.stop_audio() tweet = self.get_tweet() if tweet == None: return - urls = utils.find_urls(tweet) + urls = utils.find_urls(tweet, twitter_media=True) if len(urls) == 1: url=urls[0] elif len(urls) > 1: diff --git a/src/sessions/twitter/utils.py b/src/sessions/twitter/utils.py index 10ba9c37..ce0ae47b 100644 --- a/src/sessions/twitter/utils.py +++ b/src/sessions/twitter/utils.py @@ -21,8 +21,15 @@ bad_chars = '\'\\\n.,[](){}:;"' def find_urls_in_text(text): return url_re2.findall(text) -def find_urls (tweet): +def find_urls (tweet, twitter_media=False): urls = [] + if twitter_media and hasattr(tweet, "extended_entities"): + for mediaItem in tweet.extended_entities["media"]: + if mediaItem["type"] == "video": + for variant in mediaItem["video_info"]["variants"]: + if variant["content_type"] == "video/mp4": + urls.append(variant["url"]) + break # Let's add URLS from tweet entities. if hasattr(tweet, "message_create"): entities = tweet.message_create["message_data"]["entities"] @@ -63,6 +70,11 @@ def find_list(name, lists): if lists[i].name == name: return lists[i].id def is_audio(tweet): + # Checks firstly for Twitter videos and audios. + if hasattr(tweet, "extended_entities"): + for mediaItem in tweet.extended_entities["media"]: + if mediaItem["type"] == "video": + return True try: if len(find_urls(tweet)) < 1: return False