如何将Twitter链接转换为youtube链接

问题描述 投票:0回答:2

所以我试图创建一个Twitter机器人,让我从一条推文中获取一个youtube视频链接。我几乎不知道有人发布的链接会变成专门的链接,即

https://t.co/ ..........

我想知道是否能够将此链接恢复为原始的Youtube链接。我正在尝试获取youtube ID,它是原始链接的最后一部分。

谢谢!

btw我正在使用tweepy

python tweepy
2个回答
0
投票

twitter链接将打开一个空白网站,该网站使用javascript将您立即重定向到目标网站。

所以我们可以简单地对URL发出GET请求,并借助一些正则表达式来提取URL

Python方法


    import requests
    import re

    def get_original_twitter_url(twitter_url):
        # without masking it as a browser request, it wont work properly
        headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
        r = requests.get(url = twitter_url,headers=headers)
        data = r.text
        url = re.search("(?P<url>https?://[^\s]+)\"", data).group("url")
        return url



    print(get_original_twitter_url(<pass twitter url here>))

0
投票

这里是带有链接的Twitter状态JSON示例:https://pastebin.com/PZCE9v2cTwitter状态:https://twitter.com/redditdota2/status/1237997630216712193

提取文本时,您得到:

"text":"Everyone 2-0 @Cloud9 at @DOTA2 Summit 12 https://t.co/...#dota2 https://t.co/..."

text包含t.co链接。但是,在json对象中,您可以检索display_urlexpanded_url

"urls":[
  {
    "display_url":"redd.it/fh7i27",
    "expanded_url":"https://redd.it/fh7i27",
    "indices":[
      41,
      64
    ],
    "url":"https://t.co/..."
  }
]

这样,您可以使用正确的URL轻松调整text

for url in urls:
  text.replace(url['url'], url['expanded_url'])

这里有一个类似的项目:https://github.com/nntin/discord-twitter-bot

PS:我删除了完整的t.co链接,因为StackOverflow不允许我以其他方式发布答案。

© www.soinside.com 2019 - 2024. All rights reserved.