I'm trying to retrieve viral tweets for an academic project using the Twitter API v2. There is a Topic on Twitter called "viral tweets" which is perfect for what I want.
It has id 1284234742661963776 so my thoughts was to query using context annotations. However there is no entity related to viral tweets on the API. I've tried to input this entity id using context id 131 which corresponds to the Twitter Unified Taxonomy, but got nothing. Did someone manage to retrieve them? Are not all topics on Twitter available on the API?
Here is an example of the code I used
Not all topics available on Twitter are part of the context annotations provided via the Twitter API. You can read more about this and see an example in this answer.
Related
I am scraping Twitter tweets using the Tweepy V2 API, but am having trouble querying for more popular tweets with higher retweets and likes.
My application requires that I ignore retweets and replies for tweets via -is:retweet -is:reply. I am searching for the original tweets themselves.
However, I currently have numerous tweets which have very low likes and retweets, which is inadequate for my application.
Is there any method to query based on popularity or retweets count in Tweepy V2? The popularity filter seems to only exist in Tweepy V1 (Is there a way to search for Top tweets with tweepy instead of latest tweets?).
Code is shown below:
query_str = "#chosen_topic lang:en -is:retweet -is:reply"
client = tweepy.Client(bearer_token=config.BEARER_TOKEN, consumer_key=
config.CONSUMER_KEY,consumer_secret= config.CONSUMER_SECRET,access_token=
config.ACCESS_TOKEN,access_token_secret= config.ACCESS_TOKEN_SECRET)
for tweet_batch in tweepy.Paginator(client.search_all_tweets, query=query_str,
tweet_fields=['context_annotations','created_at', 'public_metrics','author_id', 'lang', 'geo', 'entities'],
user_fields=['name','username','location','verified','description'],
max_results=100, expansions='author_id'):
tweet_data = tweet_batch.data
for tweet in tweet_data:
print(tweet.public_metrics['reply_count'])
You can add the the sort_order='relevancy' argument to your search (see here).
I don't know if this is the exact equivalent of the result_type='popular' argument in the V1 API, but it seems to be the best way to do what you're asking for in the V2 API.
I'm using the python library tweepy in order to extract data from the twitter api v2.
The api also possesses the option to provide tweet annotations, which are basically categorization of certain elements used in the tweet. (The endpoint and documentation of this is available at: https://developer.twitter.com/en/docs/twitter-api/annotations/overview).
My question would be if there is a way to call this endpoint via tweepy? Or is there another way to access the automatic categorization of words using tweepy?
From the tweepy documentations:
tweepy.Tweet.context_annotations
should give you the infos you want.
I am trying to pull the Category/Topic of Tweets for a school project.
I am not seeing it as one of the keys in public_tweets (below), was wondering if it was located within a variable somewhere else? Thanks!
Example of a Twitter Topic/Category (would like to pull the “Lebron James” label):
Topics are known as “context annotations” in the Twitter API, and are only available in v2. The Tweet data you have here is from v1.1. You’ll need to update the way you are accessing the API and add parameters to get Tweet expansions and fields for context annotations.
I want to setup a bot, which will read tweets from a twitter user and store. I can find several examples on search for particular key words, post ID etc.
Can any one recommend which api call is required for monitoring one particular user?
use tweepy for data mining from twitter https://github.com/tweepy/tweepy
The Twitter API call you would use is statuses/user_timeline. The documentation is here.
Some python examples to get you started with using Twitter are here.
So I am doing fairly trivial task of retrieving tweets from a particular user. What I really want to do is to count how many times each of his tweets have been retweeted. I have looked at python's tweepy's API, and I have not been able to find a clear answer. Is there a way to do this in python?
tweepy, might not have method for every endpoint in the twitter API.
tweepy should allow you to call an arbitrary endpoint, though. When in doubt, you can check out the official twitter API to see what is offered.
https://dev.twitter.com/docs/api/1.1
It appears that you might only be able to get 100 retweets for a given tweet_id
https://dev.twitter.com/docs/api/1.1/get/statuses/retweets/%3Aid
https://dev.twitter.com/docs/api/1.1/get/statuses/retweeters/ids