PyImgurAPI
A Python SDK for the Imgur API.
Overview
The package is supposed to be in strict accordance with the Imgur's documentation, i.e. description for any endpoint implemented in the SDK can also be found there.
The package does not have any third-party dependencies; it requires only Python 3.7+.
Alternatives:
- PyImgur was originally an official client for Imgur, but it seems to be deprecated now.
- imgur-python a relevant unofficial SDK for Imgur.
Installation
Using pip:
$ pip install pyimgurapi
First authentication
- Register your application to get
client_id
and client_secret
. - Open the next URL in a browser:
https://api.imgur.com/oauth2/authorize?client_id=<your_client_id>&response_type=token
(replace <your_client_id>
with the actual ID) - Allow authentication for a client.
- Copy the
refresh_token
value from the URL field. - Then you can authenticate your client:
from pyimgurapi import ImgurAPI
api = ImgurAPI(
refresh_token="<refresh_token>",
client_id="<client_id>",
client_secret="<client_secret>",
)
api.auth()
Basic usage
Getting info about an image:
from pyimgurapi import ImgurAPI
api = ImgurAPI(
refresh_token="<refresh_token>",
client_id="<client_id>",
client_secret="<client_secret>",
)
api.auth()
meme_image = api.image.get_image("6yHmlwT")
Then you can access attributes of the response using a dot-notation:
print(meme_image.data.link)
or using a subscript-notation:
print(meme_image["data"]["link"])
Uploading a new image:
from pyimgurapi import ImgurAPI
api = ImgurAPI(
refresh_token="<refresh_token>",
client_id="<client_id>",
client_secret="<client_secret>",
)
api.auth()
filename = "cat1.jpg"
with open(filename, 'rb') as f:
new_image = api.image.upload(
f,
filename,
title="New image",
description="Absolutely new image"
)
Then you can access attributes of the new image as well:
print(new_image.data.link)
Contributing
See the contributing guidelines.
License
MIT