This package has been deprecated

Author message:

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

twitster

1.0.5 • Public • Published

Twitster

npm building workflow license alt text

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 list
  • options - optional parameters
    • options.nextPageToken - next page token for getting next page
    • options.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-Tweets
  • options - optional parameters
    • options.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 name
  • options - optional parameters
    • options.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 name
  • options - optional parameters
    • options.nextPageToken - next page token for getting next page
    • options.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

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

Package Sidebar

Install

npm i twitster

Weekly Downloads

4

Version

1.0.5

License

MIT

Unpacked Size

60.6 kB

Total Files

11

Last publish

Collaborators

  • hamedazar