Skip to content

halcy/Mastodon.py

Repository files navigation

Mastodon.py

Python wrapper for the Mastodon (https://github /mastodon/mastodon/) API. Feature complete for public API as of Mastodon version 3.5.5 and easy to get started with:

frommastodonimportMastodon

# Register your app! This only needs to be done once (per server, or when
# distributing rather than hosting an application, most likely per device and server).
# Uncomment the code and substitute in your information:
'''
Mastodon.create_app(
'pytooterapp',
api_base_url = 'https://mastodon.social',
to_file = 'pytooter_clientcred.secret'
)
'''

# Then, log in. This can be done every time your application starts (e.g. when writing a
# simple bot), or you can use the persisted information:
mastodon=Mastodon(client_id='pytooter_clientcred.secret',)
mastodon.log_in(
'my_login_email@example ',
'incrediblygoodpassword',
to_file='pytooter_usercred.secret'
)

# If you are logging in for the first time you need to give permissions to the app
# via OAuth, at the URL given by auth_request_url() and then pass code instead of
# username and password.
mastodon.log_in(
to_file='pytooter_usercred.secret',
code='code_from_oauth,
scopes=['read','write'],
)

# Note that this won't work when using 2FA - you'll have to use OAuth, in that case.
# To post, create an actual API instance:
mastodon=Mastodon(access_token='pytooter_usercred.secret')
mastodon.toot('Tooting from Python using #mastodonpy!')

You can install Mastodon.py via pypi:

#Python 3
pip3 install Mastodon.py

We currently try to support Python 3.7 and above, and try to at least not break Python 3 versions below that. Python 2 support is no longer a goal.

Full documentation and basic usage examples can be found athttps://mastodonpy.readthedocs.io/en/stable/.Some more extensive examples can be found athttps://github /halcy/MastodonpyExamples

Acknowledgements

Mastodon.py contains work by a large amount of contributors, many of which have put significant work into making it a better library. You can find some information about who helped with which particular feature or fix in the changelog.

https://circleci.com/gh/halcy/Mastodon.py.svg?style=svg