https://github.com/pariazar/twitster
A free and unlimited API for twitter.
https://github.com/pariazar/twitster
Last synced: 8 months ago
JSON representation
A free and unlimited API for twitter.
- Host: GitHub
- URL: https://github.com/pariazar/twitster
- Owner: pariazar
- License: mit
- Created: 2022-12-31T16:25:54.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-29T21:06:06.000Z (about 3 years ago)
- Last Synced: 2024-02-09T23:38:42.973Z (over 2 years ago)
- Language: JavaScript
- Size: 368 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Twitster
[](https://www.npmjs.com/package/twitster)

[](https://www.npmjs.com/package/@vitalets/google-translate-api)

A free and unlimited API for twitter.
## Contents
- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
* [Get-Tweets](#get-tweets)
* [Get-Tweet-Replies](#get-tweet-replies)
* [Search-Users](#search-users)
* [Get-User-Detail](#get-user-detail)
* [Translate-Tweets](#translate-tweets)
- [License](#license)
## Features
* explore new tweets
* search keyword inside tweets
* search users
* get and search tweets for single user
* translate tweets
## Installation
```bash
npm install twitster
```
## Usage
### Get-Tweets
to extract list of tweets:
#### Parameters
- `keyword` - keyword or hashtag for your tweets list
- `options` - optional parameters
- `options.nextPageToken` - next page token for getting next page
- `options.page` - page number for get get specific page
##### Basic example
```javascript
var { findTopTweets } = require("twitster");
var listOfTweets = await findTopTweets("bitcoin");
console.log(listOfTweets);
```
##### Output
```javascript
[{
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
```javascript
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
```javascript
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-Tweets](#get-tweets)
- `options` - optional parameters
- `options.nextPageToken` - next page token for getting next page
##### Basic example
```javascript
var { getTweetReplies } = require("twitster");
var listOfReplies = await getTweetReplies('IT_AIRmass/status/1609123005396819969#m');
console.log(listOfReplies);
```
##### Output
```javascript
[{
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
```javascript
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 name
- `options` - optional parameters
- `options.nextPageToken` - next page token for getting next page
##### Basic example
```javascript
var { findUsers } = require("twitster");
var listOfUsers = await findUsers("messi");
console.log(listOfUsers);
```
##### Output
```javascript
[{
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
```javascript
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 name
- `options` - optional parameters
- `options.nextPageToken` - next page token for getting next page
- `options.filter` - keyword to add filter tweets
##### Basic example
```javascript
var { getUserDetail } = require("twitster");
var detailOfUser = await getUserDetail("Bitcoin");
console.log(detailOfUser);
```
##### Output
```javascript
{
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
```javascript
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
```javascript
var { getUserDetail } = require("twitster");
var detailOfUser = await getUserDetail("Bitcoin", options = { filter: 'doge' });
console.log(detailOfUser);
```
##### output
```javascript
{
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
```javascript
const { findTopTweets } = require('twitster');
var translatedTweets = await findTopTweets("bitcoin", options = { language: 'de' });
console.log(translatedTweets);
```
#### Output
```javascript
[
{
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
- [Bug Reports](https://github.com/hamedpa/twitster/issues/)
## Contributors
Pull requests are always welcome! Please base pull requests against the main branch and follow the contributing guide.
if your pull requests makes documentation changes, please update readme file.
## License
This project is licensed under the terms of the
MIT license