Python Twitter API

Overview

Python Twitter Tools

Tests Coverage Status

The Minimalist Twitter API for Python is a Python API for Twitter, everyone's favorite Web 2.0 Facebook-style status updater for people on the go.

Also included is a Twitter command-line tool for getting your friends' tweets and setting your own tweet from the safety and security of your favorite shell and an IRC bot that can announce Twitter updates to an IRC channel.

For more information:

  • install the package pip install twitter
  • import the twitter package and run help() on it
  • run twitter -h for command-line tool help

twitter - The Command-Line Tool

The command-line tool lets you do some awesome things:

  • view your tweets, recent replies, and tweets in lists
  • view the public timeline
  • follow and unfollow (leave) friends
  • various output formats for tweet information

The bottom line: type twitter, receive tweets.

twitterbot - The IRC Bot

The IRC bot is associated with a Twitter account (either your own account or an account you create for the bot). The bot announces all tweets from friends it is following. It can be made to follow or leave friends through IRC /msg commands.

twitter-log

twitter-log is a simple command-line tool that dumps all public tweets from a given user in a simple text format. It is useful to get a complete offsite backup of all your tweets. Run twitter-log and read the instructions.

twitter-archiver and twitter-follow

twitter-archiver will log all the tweets posted by any user since they started posting. twitter-follow will print a list of all of all the followers of a user (or all the users that user follows).

Programming with the Twitter API classes

The Twitter and TwitterStream classes are the key to building your own Twitter-enabled applications.

The Twitter class

The minimalist yet fully featured Twitter API class.

Get RESTful data by accessing members of this class. The result is decoded python objects (lists and dicts).

The Twitter API is documented at:

https://developer.twitter.com/en/docs

The list of most accessible functions is listed at:

https://developer.twitter.com/en/docs/api-reference-index

Examples:

from twitter import *

t = Twitter(
    auth=OAuth(token, token_secret, consumer_key, consumer_secret))

# Get your "home" timeline
t.statuses.home_timeline()

# Get a particular friend's timeline
t.statuses.user_timeline(screen_name="boogheta")

# to pass in GET/POST parameters, such as `count`
t.statuses.home_timeline(count=5)

# to pass in the GET/POST parameter `id` you need to use `_id`
t.statuses.show(_id=1234567890)

# Update your status
t.statuses.update(
    status="Using @boogheta's sweet Python Twitter Tools.")

# Send a direct message
t.direct_messages.events.new(
    _json={
        "event": {
            "type": "message_create",
            "message_create": {
                "target": {
                    "recipient_id": t.users.show(screen_name="boogheta")["id"]},
                "message_data": {
                    "text": "I think yer swell!"}}}})

# Get the members of maxmunnecke's list "network analysis tools" (grab the list_id within the url) https://twitter.com/i/lists/1130857490764091392
t.lists.members(owner_screen_name="maxmunnecke", list_id="1130857490764091392")

# Favorite/like a status
status = t.statuses.home_timeline()[0]
if not status['favorited']:
    t.favorites.create(_id=status['id'])

# An *optional* `_timeout` parameter can also be used for API
# calls which take much more time than normal or twitter stops
# responding for some reason:
t.users.lookup(
    screen_name=','.join(A_LIST_OF_100_SCREEN_NAMES), _timeout=1)

# Overriding Method: GET/POST
# you should not need to use this method as this library properly
# detects whether GET or POST should be used, Nevertheless
# to force a particular method, use `_method`
t.statuses.oembed(_id=1234567890, _method='GET')

# Send images along with your tweets:
# - first just read images from the web or from files the regular way:
with open("example.png", "rb") as imagefile:
    imagedata = imagefile.read()
# - then upload medias one by one on Twitter's dedicated server
#   and collect each one's id:
t_upload = Twitter(domain='upload.twitter.com',
    auth=OAuth(token, token_secret, consumer_key, consumer_secret))
id_img1 = t_upload.media.upload(media=imagedata)["media_id_string"]
id_img2 = t_upload.media.upload(media=imagedata)["media_id_string"]
# - finally send your tweet with the list of media ids:
t.statuses.update(status="PTT ★", media_ids=",".join([id_img1, id_img2]))

# Or send a tweet with an image (or set a logo/banner similarly)
# using the old deprecated method that will probably disappear some day
params = {"media[]": imagedata, "status": "PTT ★"}
# Or for an image encoded as base64:
params = {"media[]": base64_image, "status": "PTT ★", "_base64": True}
t.statuses.update_with_media(**params)

# Attach text metadata to medias sent, using the upload.twitter.com route
# using the _json workaround to send json arguments as POST body
# (warning: to be done before attaching the media to a tweet)
t_upload.media.metadata.create(_json={
  "media_id": id_img1,
  "alt_text": { "text": "metadata generated via PTT!" }
})
# or with the shortcut arguments ("alt_text" and "text" work):
t_upload.media.metadata.create(media_id=id_img1, text="metadata generated via PTT!")

Searching Twitter:

# Search for the latest tweets about #pycon
t.search.tweets(q="#pycon")

# Search for the latest tweets about #pycon, using [extended mode](https://developer.twitter.com/en/docs/tweets/tweet-updates)
t.search.tweets(q="#pycon", tweet_mode='extended')

Retrying after reaching the API rate limit

Simply create the Twitter instance with the argument retry=True, then the HTTP error codes 429, 502, 503, and 504 will cause a retry of the last request.

If retry is an integer, it defines the maximum number of retry attempts.

Using the data returned

Twitter API calls return decoded JSON. This is converted into a bunch of Python lists, dicts, ints, and strings. For example:

x = twitter.statuses.home_timeline()

# The first 'tweet' in the timeline
x[0]

# The screen name of the user who wrote the first 'tweet'
x[0]['user']['screen_name']

Getting raw XML data

If you prefer to get your Twitter data in XML format, pass format="xml" to the Twitter object when you instantiate it:

twitter = Twitter(format="xml")

The output will not be parsed in any way. It will be a raw string of XML.

The TwitterStream class

The TwitterStream object is an interface to the Twitter Stream API. This can be used pretty much the same as the Twitter class, except the result of calling a method will be an iterator that yields objects decoded from the stream. For example::

twitter_stream = TwitterStream(auth=OAuth(...))
iterator = twitter_stream.statuses.sample()

for tweet in iterator:
    ...do something with this tweet...

Per default the TwitterStream object uses public streams. If you want to use one of the other streaming APIs, specify the URL manually.

The iterator will yield until the TCP connection breaks. When the connection breaks, the iterator yields {'hangup': True} (and raises StopIteration if iterated again).

Similarly, if the stream does not produce heartbeats for more than 90 seconds, the iterator yields {'hangup': True, 'heartbeat_timeout': True} (and raises StopIteration if iterated again).

The timeout parameter controls the maximum time between yields. If it is nonzero, then the iterator will yield either stream data or {'timeout': True} within the timeout period. This is useful if you want your program to do other stuff in between waiting for tweets.

The block parameter sets the stream to be fully non-blocking. In this mode, the iterator always yields immediately. It returns stream data, or None.

Note that timeout supercedes this argument, so it should also be set None to use this mode, and non-blocking can potentially lead to 100% CPU usage.

Twitter Response Objects

Response from a Twitter request. Behaves like a list or a string (depending on requested format), but it has a few other interesting attributes.

headers gives you access to the response headers as an httplib.HTTPHeaders instance. Use response.headers.get('h') to retrieve a header.

Authentication

You can authenticate with Twitter in three ways: NoAuth, OAuth, or OAuth2 (app-only). Get help() on these classes to learn how to use them.

OAuth and OAuth2 are probably the most useful.

Working with OAuth

Visit the Twitter developer page and create a new application:

https://dev.twitter.com/apps/new

This will get you a CONSUMER_KEY and CONSUMER_SECRET.

When users run your application they have to authenticate your app with their Twitter account. A few HTTP calls to Twitter are required to do this. Please see the twitter.oauth_dance module to see how this is done. If you are making a command-line app, you can use the oauth_dance() function directly.

Performing the "oauth dance" gets you an oauth token and oauth secret that authenticate the user with Twitter. You should save these for later, so that the user doesn't have to do the oauth dance again.

read_token_file and write_token_file are utility methods to read and write OAuth token and secret key values. The values are stored as strings in the file. Not terribly exciting.

Finally, you can use the OAuth authenticator to connect to Twitter. In code it all goes like this:

from twitter import *

MY_TWITTER_CREDS = os.path.expanduser('~/.my_app_credentials')
if not os.path.exists(MY_TWITTER_CREDS):
    oauth_dance("My App Name", CONSUMER_KEY, CONSUMER_SECRET,
                MY_TWITTER_CREDS)

oauth_token, oauth_secret = read_token_file(MY_TWITTER_CREDS)

twitter = Twitter(auth=OAuth(
    oauth_token, oauth_secret, CONSUMER_KEY, CONSUMER_SECRET))

# Now work with Twitter
twitter.statuses.update(status='Hello, world!')

Working with OAuth2

Twitter only supports the application-only flow of OAuth2 for certain API endpoints. This OAuth2 authenticator only supports the application-only flow right now.

To authenticate with OAuth2, visit the Twitter developer page and create a new application:

https://dev.twitter.com/apps/new

This will get you a CONSUMER_KEY and CONSUMER_SECRET.

Exchange your CONSUMER_KEY and CONSUMER_SECRET for a bearer token using the oauth2_dance function.

Finally, you can use the OAuth2 authenticator and your bearer token to connect to Twitter. In code it goes like this::

twitter = Twitter(auth=OAuth2(bearer_token=BEARER_TOKEN))

# Now work with Twitter
twitter.search.tweets(q='keyword')

License

Python Twitter Tools are released under an MIT License.

Comments
  • TwitterStream.user() fails on production server, works in local development environment

    TwitterStream.user() fails on production server, works in local development environment

    OK, this is a hard one.... when I've gotten this error before, it typically meant I lost the connection to twitter, and a quick restart fixes everything, but not anymore...

    Here is the stack trace:

    auth = twitter.Oauth( ... keys )

    Code:

    from twitter import * stream = twitter.stream.TwitterStream(auth=auth, domain='userstream.twitter.com') stream.user()

    Trace:

    Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/twitter/api.py", line 308, in call return self._handle_response(req, uri, arg_data, _timeout) File "/usr/local/lib/python2.7/dist-packages/twitter/stream.py", line 284, in _handle_response _timeout or timeout, heartbeat_timeout) File "/usr/local/lib/python2.7/dist-packages/twitter/stream.py", line 209, in handle_stream_response raise TwitterHTTPError(e, uri, 'json', arg_data) File "/usr/local/lib/python2.7/dist-packages/twitter/api.py", line 72, in init data = json.loads(data.decode('utf8')) File "/usr/lib/python2.7/json/init.py", line 338, in loads return _default_decoder.decode(s) File "/usr/lib/python2.7/json/decoder.py", line 366, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded

    =========

    This code is from my program, which works just FINE in my local development environment.

    Local Dev =

    Ubuntu 14 Python 2.7 WingIDE VirtualEnvirnment with depenedencies installed.

    However, on my server, hosted on EC2 it fails:

    Ubuntu 14 Python 2.7 Virtual Environment Run from command line with python manage.py shell , then load program with execfile('mybot.py')

    The same code has been working, but stopped suddenly with the above JSON error.

    If I run the same code in DEV on my local system, it works, however running on production server, it fails.

    If compared the environments between both systems, and they SEEM to be the same...

    On the production server I CAN do OTHER streaming functionality like SENDING DM's to my twitter account.... So SENDING works, but listening with stream.user() FAILS with this JSON error.

    I would appreciate ANY suggestions. :)

    Thank you,

    PS: Love this tool, I think it's better than the other Python Twitter options out there.

    opened by lmaloney 23
  • Fix broken userstream and all other streams supposed to break after Jan 13 + add image support + fix diverses issues

    Fix broken userstream and all other streams supposed to break after Jan 13 + add image support + fix diverses issues

    Merry Christmas!... Twitter is moving all of its streaming APIs towards HTTP1.1 chunked encoded transfer and breaking the whole lib for us! https://dev.twitter.com/blog/deprecating-http-1.0-streaming-api

    Userstream passed already mid-november and has been broken since, cf #190 I first didn't pay much more attention to it than reading the issue thread since I only use the public statuses.filter stream. But I just found out about this announce and browsing issues it became clear the userstream issue here was coming from this change, which did happen on November 23rd in fact (https://dev.twitter.com/discussions/23224#comment-53758) just as the issues reported here confirm.

    The thing is the announce also says that on January 13, Twitter will apply it as well for all the other streaming calls, meaning they probably will all be broken as well. So this motivated me to fix the issue for userstream and supposedly for the other ones further on.

    The solution was to stop asking for gzip encoded data for streaming calls since they already answer not zipped with the HTTP1.0 calls (like statuses/filter for now) and should not be zipped when dealing with chunked transfer. This also required to adjust the parsing of the chunks to separate "delimited" length sent by twitter from actual data.

    I've tried it out successfully on a combination of calls on (public stream HTTP1.0 | user stream HTTP1.1chunked) x (not blocking | blocking | with timeout) x (low traffic | high traffic | high traffic with argument 'delimited') with python 2.6 & 2.7 only. I don't believe I've modified anything incompatible but any tryout from py3 users would be great.

    I also took the occasion to fix a couple other issues, including fixing some hanging when using the timeout with low traffic, providing TwitterHTTPErrors on streaming calls errors, fixing the broken follow create/destroy with cmdline and the irc bot, and completing the POST methods list.

    Considering the urge, I will personnally migrate my IRC bot gazouilleur to my branch until this is pulled or handled otherwise.

    git+https://github.com/RouxRC/[email protected]

    Happy tweeting holidays!

    PS: Twitter also announced an SSL change for Jan 6, but since all the calls are already using secure by default, we should't be at risk here.

    edit 28/12: I've completed this with fixing the tilde sending issue for python 2, and I added the support for API calls to send images as discussed in #127 , it now works when feeding the corresponding argument with raw read of a file. For instance:

    twitter.update_with_media(status="Youpi !", 'media[]' = open('img.jpg', 'rb').read())
    opened by RouxRC 21
  • Twitter Stream API + OAuth not working

    Twitter Stream API + OAuth not working

    I've used the code some months ago, with the streaming API and the OAuth method and it worked.

    Today I tried again and I'm getting a

    HTTP Error 401: Unauthorized
    

    passing through

     stream.py", line 52, in handle_stream_response
    

    and originating in

     urllib2.py, line 521, in http_error_default
    

    The same OAuth works fine with other methods: I tried both statuses.home_timeline() and direct_messages.new()

    opened by kuzeko 18
  • Twitter changed Trends API (again) so trends() no longer works

    Twitter changed Trends API (again) so trends() no longer works

    See https://dev.twitter.com/blog/changing-trends-api for an overview of the new API that is no longer compatible with this Python package (AFAICT.)

    In short, the previous Twitter(...).trends() approach no longer works, and a call of the form http://api.twitter.com/1/trends/1.json doesn't seem to be compatible with the design philosophy that's worked so well up till this point. We've previously brainstormed some ideas in https://github.com/sixohsix/twitter/issues/24 that might be worth revisiting here considering that there does seem to be a gravitation towards this particular scheme of encoding parameters as part of the URL itself.

    I'm happy to help work out a patch if we can come to agreement on what should be done here. As it stands, some new errata has been introduced into my book/code for Mining the Social Web, which uses this package extensively, so I'd like to help push though something quickly. Thanks.

    opened by ptwobrussell 17
  • Autodeploy to PyPI

    Autodeploy to PyPI

    As suggested in https://github.com/sixohsix/twitter/issues/356, I'll set up automated deploys:

    • Deploy to TestPyPI on merge to master, to make sure the release mechanism is working smoothly and avoid surprises on release day
    • Deploy to production PyPI for GitHub releases/tags

    I've set up a test twitter project on TestPyPI.

    @RouxRC If you create an account on https://test.pypi.org, I'll give you access too.

    Then, to use https://github.com/pypa/gh-action-pypi-publish, we then need to create API tokens for TestPyPI and PyPI and store them as secrets under https://github.com/sixohsix/twitter/settings.

    TODO:

    1. Add an API token called (say) twitter-ci at https://test.pypi.org/manage/account/token/
    2. Paste the token as TEST_PYPI_PASSWORD at https://github.com/sixohsix/twitter/settings/secrets/actions/new
    3. Repeat for production PyPI https://pypi.org/manage/account/token/, save as PYPI_PASSWORD

    More info on PyPI API tokens: https://pypi.org/help/#apitoken

    I don't have access to https://github.com/sixohsix/twitter/settings. @RouxRC Please could you either give me access to that, or please could you follow the instructions above to add the tokens?

    opened by hugovk 16
  • Fix streams timeout & hangup behavior + ensure python2.6 compat

    Fix streams timeout & hangup behavior + ensure python2.6 compat

    Here are the changes to fix the misbehavior of the timeout in case of low tweets by catching Twitter's keep-alive heartbeat signals thanks to the select.select originally added in #178 and still problematic as pointed out by @ksecrist in #202

    I also generalized the hangup to all cases since there is no reason to stay in infinite loop after a hangup in non-blocking mode.

    And to make things easier and avoid merging issues, I adapted the refacto and fixed python2.6 compatibility from @adonoho's #201

    opened by RouxRC 16
  • Test on GitHub Actions

    Test on GitHub Actions

    This tests with the same as Travis CI, and I replaced nightly with 3.10-dev, the nearest equivalent.

    Example: https://github.com/hugovk/twitter/actions/runs/360319693

    They fail for me because:

    details: {u'errors': [{u'message': u'User is over daily status update limit.', u'code': 185}]}
    

    Will try again tomorrow.

    opened by hugovk 15
  • A Simpler Fix to the Streaming Code due to Changes from Twitter on Jan. 13, 2014.

    A Simpler Fix to the Streaming Code due to Changes from Twitter on Jan. 13, 2014.

    Gentlefolk,

    First allow me to applaud and thank RouxRC on his fine work pushing this little library forward. This pull request would not have been possible without his efforts. That said, RouxRC has dropped a quite large pull request that had problems in my Python3 system. When I rolled back to Python2, the system started working but would not stay connected for very long.

    As a result of the above, I felt I needed to look into RouxRC's pull request in more detail and use just the parts I needed to get my streams running again. Any errors in this pull request are mine and do not reflect negatively on RouxRC or his code.

    RouxRC's streaming patch falls into two main areas. First, it modifies the api.py to respect a new property, gzip. I have largely copied his work here. I did simplify how he set the headers from 3 lines to one. The second fix occurs in stream.py. Once the gzip compression was turned off, I was able to see what Twitter is now sending us. Even though length delimiters are turned off, Twitter nonetheless is inserting a hex encoded number and a \r\n between JSON items. RouxRC and I differ in how we chose to address these changes. My fix is focussed upon handling those extra items if they appear in the stream, removing them and then returning to the existing control flow. The important code block is below and my changes occur with the if statement:

        while True:
            try:
                utf8_buf = self.buf.decode('utf8').lstrip()
                if utf8_buf and utf8_buf[0] != '{':  # Remove the hex delimiter length and extra whitespace.
                    utf8_buf = utf8_buf.lstrip('0123456789abcdefABCDEF')
                    utf8_buf = utf8_buf.lstrip()
                res, ptr = self.decoder.raw_decode(utf8_buf)
                self.buf = utf8_buf[ptr:].encode('utf8')
                yield wrap_response(res, self.handle.headers)
    

    RouxRC's code does this in a different way. I believe my solution is both shorter and more robust. But you, gentle reader, are the ultimate arbiter. RouxRC did identify in his code some opportunities to raise TwitterHTTPErrors. I've tried to duplicate those.

    I've run this set of fixes under Python 3.3.3 and Python 2.7.6 both on OS X 10.8.5 (Mountain Lion).

    In addition to the changes to the library, I modernized a test script, stream-example to take the OAuth parameters needed by modern Twitter. As I also use PyCharm, I've added .idea to the .gitignore file.

    Again, this simpler fix would not have been possible without the fine work of RouxRC. Thank you RouxRC.

    Anon, Andrew

    opened by adonoho 14
  • Userstream not working anymore.

    Userstream not working anymore.

    I'm having problems with user streams since a few days back. I can use the example in the README file and it seems to connect fine.

    But I don't get any messages what so ever.. And the stream connection seems to still be alive. I seems to be alive because even if I set the socket timeout to be about 1 min it never times out.

    It doesn't seem to raise any errors either so I don't really know what to do now.

    "Normal" streams IE just TwitterStream without specifying domain works so I have no Idea what the problem could be.

    opened by DarkDefender 14
  • Fix for broken PUT methods #414

    Fix for broken PUT methods #414

    Pass _method directly to urllib_request to enable PUT requests and also ensure consistency between signature and actual request,.

    Pass id parameter into auth.encode_params() for PUT requests, as required by two existing API methods using PUT.

    opened by snail-coupe 13
  • NameError: name 'Twitter' is not defined

    NameError: name 'Twitter' is not defined

    I'm using Python3.5 on ubuntu 16

    from twitter import *
    
    t = Twitter(auth=OAuth(access_token, access_secret, 
    	consumer_key, consumer_secret))
    print(t)
    

    when i run the code I get the error "NameError: name 'Twitter' is not defined"

    opened by prateekkrjain 13
  • Media uploading

    Media uploading

    I've been testing media uploading following the examples provided in the README. The method is based on creating a new instance of the Twitter class:

     t_upload = Twitter(domain='upload.twitter.com', auth=OAuth(token, token_secret, consumer_key, consumer_secret))
    

    And later using the old instance to add the uploaded media to a tweet:

      t.statuses.update(status="PTT ★", media_ids=",".join([id_img1, id_img2]))
    

    I've been testing a different approach, that could be like:

    1. Changing the domain in the instance of the Twitter class:

      t.domain = 'upload.twitter.com'

    2. Uploading the images with the original instance of the Twitter class (but with different domain).

    3. Changing the domain to the original one:

      t.domain = 'api.twitter.com'

    4. Publishing the tweet containing the images.

    I was wondering if this approach is ok (and, I believe, more simple than creating a secondary instance to upload images). If this is true, maybe it would be nice to modify de upload methods to change internally the domain and so on. Or, at least, maybe providing the adequate methods for changing the domains when needed.

    opened by fernand0 1
  • Test CI on Windows and macOS

    Test CI on Windows and macOS

    Follow on from https://github.com/python-twitter-tools/twitter/pull/451#issuecomment-1246747905.

    ~Drop support for Python 3.6, end-of-life on 2021-12-23.~ Moved to #454.

    On the CI, test Ubuntu with:

    • Python 2.7 (CPython and PyPy)
    • the lowest and highest 3.x versions
    • Any dev versions

    And also test Windows on 3.8 and macOS 3.9.

    opened by hugovk 4
  • twitter-archiver only works with recent tweets

    twitter-archiver only works with recent tweets

    hello, as said in the title i would like to archive all the tweets of an user even if they've been active for years and, then, have posted thousands of tweets. however, twitter-archiver allows me to collect only a couple of tweets throughout the current year - or sometimes end of last year.

    why is there a limit? and how can i bypass it, please?

    opened by msw9 1
  • twitter-archiver not working

    twitter-archiver not working

    i use this line of command (ms-dos) twitter-archiver <user> but here are the error messages that i get: Fail: Twitter sent status 400 for URL: 1.1/statuses/user_timeline.json using parameters (count=200&include_rts=1&screen_name=osezlefeminisme&tweet_mode=extended) details: {'errors': [{'code': 215, 'message': 'Bad Authentication data.'}]}

    CLI 
    opened by msw9 1
  • Roadmap Twitter v2

    Roadmap Twitter v2

    • [X] ensure code compatibility
    • [x] add helper class Twitter2
    • [x] add helper class TwitterStream2
    • [ ] update tests
    • [x] handle :id argument in middle of urls (i.e. /2/tweets/id/retweeted_by)
    • [x] better document middle arguments use and _id
    • [ ] complete internal help doc
    • [ ] improve expansions, fields arguments use
    • [ ] cleanup _json / params mess
    • [ ] Test all open v2 routes https://developer.twitter.com/en/docs/api-reference-index#Twitter
    • [ ] complete documentation
    • [ ] cleanup shell tools & irc bot ?

    example calls

    feature Documentation 
    opened by boogheta 2
Releases(twitter-1.19.6)
Owner
Python Twitter Tools (PTT) includes a Twitter API, command-line tool, and IRC bot.
API generated by OpenAPI for nhentai.net

nhentai-api No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) This Python package is automati

Shikanime Deva 1 Nov 01, 2021
Stack Overflow Error Parser

A python tool that executes python files and opens respective Stack Overflow threads in browser for errors encountered.

Raghavendra Khare 3 Jul 24, 2022
Tweet stream in OBS browser source

Tweetron TweetronはOBSブラウザーソースを使用してツイートを画面上に表示するツールソフトです Windowsのみ対応 (Windows10動作確認済) ダウンロード こちらから最新版をダウンロードしてください (現在ベータテスト版を配布しています) Download ver0.0.

Cube 0 Apr 05, 2022
Use an air-gapped Raspberry Pi Zero to sign for Bitcoin transactions! (and do other cool stuff)

Hello World! Build your own offline, airgapped Bitcoin transaction signing device for less than $35! Also generate seed word 24 or generate a seed phr

371 Dec 31, 2022
A free, minimal, lightweight, cross-platform, easily expandable Twitch IRC/API bot.

parky's twitch bot A free, minimal, lightweight, cross-platform, easily expandable Twitch IRC/API bot. Features 🔌 Connect to Twitch IRC chat! 🔌 Conn

Andreas Schneider 10 Dec 30, 2022
Bot facebook

botfb Bot facebook Login via cookies cara install $pkg update && pkg upgrade $pkg install git python $git clone https://github.com/Ainx-BOT/botfb $cd

Fahmi Dev 12 Dec 18, 2022
Discord Token Generator based on HTTPX, makes unverified tokens and automatically joins your server! this is used for memberboosting

Discord Token Generator | 2021 Features: (1) hCaptcha Bypasser, latest hfuck.py Updated by me (2) Free Proxy Support/Scrapper (3) Custom Realistic Dat

2 Nov 30, 2021
BingBot - A bot that will automate searches on bing

bingBot A bot that will automate searches on bing. To install this just download

Lukas 2 Jul 28, 2022
It's My Bot, For my group in telegram :)

Get Start USage This robot is written in Python language for devdood Group in Telegram ... You can easily edit and use this source Edit and Run You ne

Mohsen farzadmanesh 7 Sep 24, 2022
PHION's client-side core python library

PHION-core PHION's client-side core python library. This library is not meant to be used directly by users. If you want to install phion please use th

PHION 2 Feb 07, 2022
Stock Market Insights is a Dashboard that gives the 360 degree view of the particular company stock

fedora-easyfix A collection of self-contained and well-documented issues for newcomers to start contributing with How to setup the local development e

Ganesh N 3 Sep 10, 2021
CryptoBar - A simple MenuBar app that shows the price of 3 cryptocurrencies

CryptoBar A very simple MenuBar app that shows the price of the following crypto

4 Jul 04, 2022
A very basic starter bot based on CryptoKKing with a small balance

starterbot A very basic starter bot based on CryptoKKing with a small balance, use at your own risk. I have since upgraded this script significantly a

Danny Kendrick 2 Dec 05, 2021
Playing around with the slack api for learning purposes

SlackBotTest Playing around with the slack api for learning purposes and getting people to contribute Reason for this Project: Bots are very versatile

1 Nov 24, 2021
ShadowMusic - A Telegram Music Bot with proper functions written in Python with Pyrogram and Py-Tgcalls.

⭐️ Shadow Music ⭐️ A Telegram Music Bot written in Python using Pyrogram and Py-Tgcalls Ready to use method A Support Group, Updates Channel and ready

TeamShadow 8 Aug 17, 2022
A Discord bot for viewing any currency you want comfortably.

Dost Dost is a Discord bot for viewing currencies. Getting Started These instructions will get you a copy of the project up and running on your local

Baran Gökalp 2 Jan 18, 2022
Analyzed the data of VISA applicants to build a predictive model to facilitate the process of VISA approvals.

Analyzed the data of Visa applicants, built a predictive model to facilitate the process of visa approvals, and based on important factors that significantly influence the Visa status recommended a s

Jesus 1 Jan 08, 2022
Just a simple discord bot a create for try

WAIFU MATERIAL DISCORD BOT! French ver. here HOW TO LAUNCH First, clone this rep

1 Jan 08, 2022
An async python wrapper to interact with the Steam API and its CMs

steam.py A modern, easy to use, and async ready package to interact with the Steam API. Heavily inspired by discord.py and borrowing functionality fro

James Hilton-Balfe 90 Dec 15, 2022
Simple integration between FastAPI and cloud authentication services (AWS Cognito, Auth0, Firebase Authentication).

FastAPI Cloud Auth fastapi-cloudauth standardizes and simplifies the integration between FastAPI and cloud authentication services (AWS Cognito, Auth0

tokusumi 255 Jan 07, 2023