twitster v1.0.5
Twitster
A free and unlimited API for twitter.
Contents
Features
- explore new tweets
- search keyword inside tweets
- search users
- get and search tweets for single user
- translate tweets
Installation
npm install twitster
Usage
Get-Tweets
to extract list of tweets:
Parameters
keyword
- keyword or hashtag for your tweets listoptions
- optional parametersoptions.nextPageToken
- next page token for getting next pageoptions.page
- page number for get get specific page
Basic example
var { findTopTweets } = require("twitster");
var listOfTweets = await findTopTweets("bitcoin");
console.log(listOfTweets);
Output
[{
authorName: 'Airmass',
authorBlueCheckMark: false,
retweeted: 'Deniz.Hodl⚡🐂',
tweetContent: 'All you need to know about investing in #Bitcoin.',
hashtags: [ '#Bitcoin' ],
commentCount: '1',
likeCount: '5',
retweetCount: '0',
quoteCount: '0',
tweetTime: '1m',
tweetCreatedAt: 'Dec 31, 2022 · 9:43 AM UTC',
tweetLink: '/IT_AIRmass/status/1609123005396819969#m',
images: [],
nextPageToken: 'scroll%3AthGAVUV0VFVBaAgLLF_8vg1CwWhMC8-a7O4NQsEnEVhIZ6FYCJehgEVVNFUjUBFQAVAAA%3D'
},
{
authorName: 'Math Profesor',
authorBlueCheckMark: false,
tweetContent: 'absolut scarcity can only be achieved with #bitcoin',
hashtags: [ '#bitcoin' ],
commentCount: '0',
likeCount: '0',
retweetCount: '0',
quoteCount: '0',
tweetTime: '9s',
tweetCreatedAt: 'Dec 31, 2022 · 9:44 AM UTC',
tweetLink: '/MathProfesor/status/1609123389364371456#m',
images: [
'https://nitter.tiekoetter.com/pic/media%2FFnUar77WIAAwzdu.jpg%3Fname%3Dsmall%26format%3Dwebp'
],
nextPageToken: 'scroll%3AthGAVUV0VFVBaAgLLF_8vg1CwWhMC8-a7O4NQsEnEVhIZ6FYCJehgEVVNFUjUBFQAVAAA%3D'
}];
Pagination example
if you want to get next page list you can use nextToken in previous request
var { findTopTweets } = require("twitster");
var listOfTweets = await findTopTweets("bitcoin", options = { nextPageToken: 'scroll%3AthGAVUV0VFVBaEgLPxirPi1CwWgICy8fTM4tQsEnEV8PF5FYCJehgEVVNFUjUBFRAVAAA%3D' });
console.log(listOfTweets);
if you want to get list by page number, need to set page in options
var { findTopTweets } = require("twitster");
var listOfTweets = await findTopTweets("bitcoin", options = { page: 2 });
console.log(listOfTweets);
Get-Tweet-Replies
to get replies for a single tweet
Parameters
link
- tweet link get from Get-Tweetsoptions
- optional parametersoptions.nextPageToken
- next page token for getting next page
Basic example
var { getTweetReplies } = require("twitster");
var listOfReplies = await getTweetReplies('IT_AIRmass/status/1609123005396819969#m');
console.log(listOfReplies);
Output
[{
authorName: 'Islaay',
authorBlueCheckMark: false,
replyingTo: 'Replying to @IT_AIRmass',
tweetContent: 'We have waited a long time for 2023... The implosion of the CT bera hivemind',
hashtags: null,
commentCount: '0',
likeCount: '0',
retweetCount: '0',
quoteCount: '0',
tweetTime: '1h',
tweetCreatedAt: 'Dec 31, 2022 · 10:30 AM UTC',
tweetLink: '/JIslaay/status/1609134888728563713#m',
nextPageToken: 'LBlGgMDU6Z%2FF4NQsgICwlcv74NQsgsDU5fvp5dQsgICzlfaR7tQsJQYRAAA%3D#r'
},
{
authorName: 'direwolf',
authorBlueCheckMark: false,
replyingTo: 'Replying to @IT_AIRmass',
tweetContent: 'Based.',
hashtags: null,
commentCount: '0',
likeCount: '0',
retweetCount: '0',
quoteCount: '0',
tweetTime: '15m',
tweetCreatedAt: 'Dec 31, 2022 · 11:43 AM UTC',
tweetLink: '/direwol54352270/status/1609153167354126336#m',
nextPageToken: 'LBlGgMDU6Z%2FF4NQsgICwlcv74NQsgsDU5fvp5dQsgICzlfaR7tQsJQYRAAA%3D#r'
}];
Pagination example
if you want to get next page list you can use nextToken in previous request
var { getTweetReplies } = require("twitster");
const listOfReplies = await getTweetReplies('direwol54352270/status/1609153167354126336#m', options = { nextPageToken: 'LBlGgMDU6Z%2FF4NQsgICwlcv74NQsgsDU5fvp5dQsgICzlfaR7tQsJQYRAAA%3D#r' });
console.log(listOfReplies);
Search-Users
to search users and get list of them:
Parameters
username
- username or full nameoptions
- optional parametersoptions.nextPageToken
- next page token for getting next page
Basic example
var { findUsers } = require("twitster");
var listOfUsers = await findUsers("messi");
console.log(listOfUsers);
Output
[{
fullName: 'Lionel Messi Fan Club',
username: '@LMessifanclub',
bioInfo: 'A must follow for a true Messi fan! Watch videos about Leo on our YouTube channel! Be with us, be Messified!',
link: '/LMessifanclub',
nextPageToken: 'DAAFCgABFlTaB7l__z8LAAIAAADwRW1QQzZ3QUFBZlEvZ0dKTjB2R3AvQUFBQUJRUkRUSVZZRmZRQUFBQUFBQVBEODJsQUFBQUFEOFZpYTRBQUFBQVVzRHJ4QUFBQUFBQTl2OU9DeldVenB2WEFBQVRCWDl0QmRXZ0F4R09ac0JWMTlBQkFBQUFBR0Naa2pvVWp1VzZ4eGZBQmdBQUFBQ3Q2anBNQUFBQUFBTUVHeTBBQUFBQXFkNytlQUFBQUFDMnZSUnRBQUFBQUVJZVRlNFAzUHJzTGRSd0FBQUFBQUEyYkY4Y0RrY0ZscFFXd0FBU3NtM1YrVll3QVFBQUFBQmMvbTJXAAA'
},
{
fullName: 'Leo Messi',
username: '@leomessiprivate',
bioInfo: 'Jugador del PSG. 🇨🇵',
link: '/leomessiprivate',
nextPageToken: 'DAAFCgABFlTaB7l__z8LAAIAAADwRW1QQzZ3QUFBZlEvZ0dKTjB2R3AvQUFBQUJRUkRUSVZZRmZRQUFBQUFBQVBEODJsQUFBQUFEOFZpYTRBQUFBQVVzRHJ4QUFBQUFBQTl2OU9DeldVenB2WEFBQVRCWDl0QmRXZ0F4R09ac0JWMTlBQkFBQUFBR0Naa2pvVWp1VzZ4eGZBQmdBQUFBQ3Q2anBNQUFBQUFBTUVHeTBBQUFBQXFkNytlQUFBQUFDMnZSUnRBQUFBQUVJZVRlNFAzUHJzTGRSd0FBQUFBQUEyYkY4Y0RrY0ZscFFXd0FBU3NtM1YrVll3QVFBQUFBQmMvbTJXAAA'
}];
Pagination example
if you want to get next page list you can use nextToken in previous request
var { findUsers } = require("twitster");
var listOfUsers = await findUsers("messi", options = { nextPageToken: 'DAAFCgABFlTaB7l__z8LAAIAAADwRW1QQzZ3QUFBZlEvZ0dKTjB2R3AvQUFBQUJRUkRUSVZZRmZRQUFBQUFBQVBEODJsQUFBQUFEOFZpYTRBQUFBQVVzRHJ4QUFBQUFBQTl2OU9DeldVenB2WEFBQVRCWDl0QmRXZ0F4R09ac0JWMTlBQkFBQUFBR0Naa2pvVWp1VzZ4eGZBQmdBQUFBQ3Q2anBNQUFBQUFBTUVHeTBBQUFBQXFkNytlQUFBQUFDMnZSUnRBQUFBQUVJZVRlNFAzUHJzTGRSd0FBQUFBQUEyYkY4Y0RrY0ZscFFXd0FBU3NtM1YrVll3QVFBQUFBQmMvbTJXAAA' });
console.log(listOfUsers);
Get-User-Detail
to get detail of user
Parameters
username
- username or full nameoptions
- optional parametersoptions.nextPageToken
- next page token for getting next pageoptions.filter
- keyword to add filter tweets
Basic example
var { getUserDetail } = require("twitster");
var detailOfUser = await getUserDetail("Bitcoin");
console.log(detailOfUser);
Output
{
profileInfo: {
fullName: 'Bitcoin',
username: '@Bitcoin',
bio: "Bitcoin is an open source censorship-resistant peer-to-peer immutable network. Trackable digital gold. Don't trust; verify. Not your keys; not your coins.",
location: 'Worldwide',
website: 'bitcoin.org/bitcoin.pdf',
joinDate: ' Joined August 2011',
tweetCounts: '24,551',
following: '26',
follower: '5,685,033',
likes: '2,928'
},
tweets: [
{
authorName: 'Bitcoin',
authorBlueCheckMark: false,
pinnedTweet: false,
tweetContent: 'Can they prove that they did not? That is jut their attestation. 😱',
hashtags: null,
commentCount: '78',
likeCount: '230',
retweetCount: '0',
quoteCount: '4',
tweetTime: 'Dec 21',
tweetCreatedAt: 'Dec 21, 2022 · 5:25 PM UTC',
tweetLink: '/Bitcoin/status/1605615442134855680#m',
images: [
'https://nitter.tiekoetter.com/pic/media%2FFnUar77WIAAwzdu.jpg%3Fname%3Dsmall%26format%3Dwebp'
],
nextPageToken: 'HBaAwK3pqsnovSwAAA%3D%3D'
},
{
authorName: 'Bitcoin',
authorBlueCheckMark: false,
pinnedTweet: false,
tweetContent: '',
hashtags: null,
commentCount: '290',
likeCount: '2,344',
retweetCount: '0',
quoteCount: '67',
videoCount: '176,680',
tweetTime: 'Dec 19',
tweetCreatedAt: 'Dec 19, 2022 · 3:29 PM UTC',
tweetLink: '/Bitcoin/status/1604861594160070656#m',
images: [],
nextPageToken: 'HBaAwK3pqsnovSwAAA%3D%3D'
}
]
}
Pagination example
if you want to get next page list you can use nextToken in previous request
var { getUserDetail } = require("twitster");
var detailOfUser = await getUserDetail("Bitcoin", options = { nextPageToken: 'HBaAwK3pqsnovSwAAA%3D%3D' });
console.log(detailOfUser);
Filter example
add filter and limit result of user tweets
var { getUserDetail } = require("twitster");
var detailOfUser = await getUserDetail("Bitcoin", options = { filter: 'doge' });
console.log(detailOfUser);
output
{
profileInfo: {
fullName: 'Bitcoin',
username: '@Bitcoin',
bio: "Bitcoin is an open source censorship-resistant peer-to-peer immutable network. Trackable digital gold. Don't trust; verify. Not your keys; not your coins.",
location: 'Worldwide',
website: 'bitcoin.org/bitcoin.pdf',
joinDate: ' Joined August 2011',
tweetCounts: '24,551',
following: '26',
follower: '5,685,122',
likes: '2,928'
},
tweets: [
{
authorName: 'Bitcoin',
authorBlueCheckMark: false,
pinnedTweet: false,
tweetContent: 'Because DOGE is an altcoin. Bitcoin (BCH) is the oldest and most established cryptocurrency.',
hashtags: null,
commentCount: '4',
likeCount: '6',
retweetCount: '0',
quoteCount: '0',
tweetTime: '4 May 2018',
tweetCreatedAt: 'May 4, 2018 · 5:24 PM UTC',
tweetLink: '/Bitcoin/status/992454950524403712#m'
},
{
authorName: 'Bitcoin',
authorBlueCheckMark: false,
pinnedTweet: false,
tweetContent: '"Chap slapped in @Dogecoin crap app flap" - Great headline by @theregister theregister.co.uk/2015/06/29…',
hashtags: null,
commentCount: '0',
likeCount: '2',
retweetCount: '0',
quoteCount: '0',
tweetTime: '4 Jul 2015',
tweetCreatedAt: 'Jul 4, 2015 · 7:22 PM UTC',
tweetLink: '/Bitcoin/status/617413100791308289#m'
}
]}
Translate tweets
for extract translated tweets just add language inside options find your language code from here
const { findTopTweets } = require('twitster');
var translatedTweets = await findTopTweets("bitcoin", options = { language: 'de' });
console.log(translatedTweets);
Output
[
{
id: '4937c6d261',
authorName: 'marvinFrancois',
authorBlueCheckMark: false,
tweetContent: '#Bitcoin ist bereit für einen riesigen Bullenlauf.',
hashtags: [ '#Bitcoin' ],
commentCount: '0',
likeCount: '0',
retweetCount: '0',
quoteCount: '0',
tweetTime: '8s',
tweetCreatedAt: 'Jan 5, 2023 · 8:49 PM UTC',
tweetLink: '/marviinFrancois/status/1611102551893594115#m',
nextPageToken: 'scroll%3AthGAVUV0VFVBaWwL6R2s7k2ywWgIDQzbnQ5NssEnEV8IV6FYCJehgEVVNFUjUBFQAVAAA%3D',
originalTweet: '#Bitcoin is ready for a huge bull run.'
},
{
id: 'f9d902908f',
authorName: 'Guy Swann ⚡️',
authorBlueCheckMark: false,
retweeted: 'thee junior class prezzy ✨',
tweetContent: 'Es ist die grundlegende Natur und das Design von #Bitcoin, die den FTX-Betrug unweigerlich zum Scheitern verurteilt und schnell demoliert haben, als es klar wurde.\n' +
'\n' +
'Und aus dem gleichen Grund ist #Bitcoin unsere einzige Chance, den globalen Geldbetrug zu korrigieren.',
hashtags: [ '#Bitcoin', '#Bitcoin' ],
commentCount: '0',
likeCount: '38',
retweetCount: '0',
quoteCount: '0',
tweetTime: '14 Dec 2022',
tweetCreatedAt: 'Dec 14, 2022 · 6:45 PM UTC',
tweetLink: '/TheGuySwann/status/1603098882627567618#m',
nextPageToken: 'scroll%3AthGAVUV0VFVBaWwL6R2s7k2ywWgIDQzbnQ5NssEnEV8IV6FYCJehgEVVNFUjUBFQAVAAA%3D',
originalTweet: 'It is the fundamental nature & design of #Bitcoin that made the FTX fraud inevitably doomed to fail & quickly demolished when it became clear.\n' +
'\n' +
'And it’s the same reason why #Bitcoin is our only shot at correcting the global monetary scam.'
}
]
Support
Contributors
if your pull requests makes documentation changes, please update readme file.
License
This project is licensed under the terms of the MIT license