Get twitter t.co URL length using Tweepy

The twitter documentation indicates that t.co lengths can be obtained from the help/configuration API. This post gives an example of how to use the Tweepy Python library to obtain those values.

It is straight forward to obtain the configuration using tweepy. After creating a tweepy.API instance the configuration can be retrieved by calling the tweepy.API.configuration() method. However, the configuration will need to be stored since twitter recommends obtaining it only once a day. If you have a long running process then the configuration could be stored in memory. However, if the process runs periodically the data will need to be persisted. In the example below, I chose to store the data in a pickle file. I saved the entire configuration because it is simpler to store everything rather than picking out the t.co length values.

import pickle
import tweepy

consumer_key = 'XXX'
consumer_secret = 'XXX'
access_token = 'XXX'
access_token_secret = 'XXX'

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)
config = api.configuration()

with open('config.pickle', 'wb') as f:
    pickle.dump(config, f)

To get the t.co lengths, it is just a matter of reading the pickle file and accessing the t.co length keys.

import pickle

with open('config.pickle', 'rb') as f:
    data = pickle.load(f)
    print("short url length: ", data['short_url_length'])
    print("https url length: ",  data['short_url_length_https'])