pyshortenersを使ってbit.lyの短縮アドレスを解決(expand)する

タイトルの通りです。

きっかけ

これまで「短縮 URL 展開してくれる君」を参考にしたコードを使っていた。

短縮 URL 展開してくれる君
https://gist.github.com/ktr0731/255c4d2c1a2b7b153e8758f0a19959c7

このコードはrequestsを使って、リダイレクトされなくなるまでheader関数のLocationを取得し続けるというルーチンなのだが、どういうわけか一部のbit.lyのURLを解決することができない。

参考:【PHP】header関数のLocationを使ってリダイレクトする方法

pyshortenersを使う

pyshortenerを使うことで様々な短縮アドレスを解決できる。bit.lyに関しては下記の通り。

https://pyshorteners.readthedocs.io/en/latest/apis.html#bit-ly

bit.lyのAPIのアクセストークンを発行する

pyshortenerでbit.lyの短縮アドレスを解決するためにはAPIのアクセストークンが必要なようだ。

bit.lyでサインアップし、settings→API→Access token→Generate tokenで発行する。

なお、無料アカウントの場合、月あたり1000回の呼び出しまでのようだ。

サンプルコード

発行したAccess tokenをYOUR_KEYに代入する。

短縮する場合は

import pyshorteners

s = pyshorteners.Shortener(api_key='YOUR_KEY')
url = 'http://www.google.com'
print(s.bitly.short(url))

実行結果は、

http://bit.ly/TEST

展開する場合は、

import pyshorteners

s = pyshorteners.Shortener(api_key='YOUR_KEY')
url = 'https://bit.ly/TEST'
print(s.bitly.expand(url))

実行結果は、

http://www.google.com

となる。