Search code examples
pythontweepy

Change twitter banner from url


How would I go by changing the twitter banner using an image from url using tweepy library: https://github.com/tweepy/tweepy/blob/v2.3.0/tweepy/api.py#L392

So far I got this and it returns:

def banner(self):
    url = 'https://blog.snappa.com/wp-content/uploads/2019/01/Twitter-Header-Size.png'
    file = requests.get(url)
    self.api.update_profile_banner(filename=file.content)

ValueError: stat: embedded null character in path

It seems like filename requires an image to be downloaded. Anyway to process this without downloading the image and then removing it?


Solution

  • Looking at library's code you can do what you want.

    def update_profile_banner(self, filename, *args, **kargs):
        f = kargs.pop('file', None)
    

    So what you need to do is supply the filename and the file kwarg:

    filename = url.split('/')[-1]
    self.api.update_profile_banner(filename, file=file.content)