A TypeScript package for scraping tweets from Nitter without authentication.
# Install as a library
npm install nitter-scraper
# Or install globally to use as CLI
npm install -g nitter-scraper
import { fetchTweets } from "nitter-scraper";
async function main() {
const tweets = await fetchTweets("username", 1); // username without @, max pages (optional)
console.log(`Found ${tweets.length} tweets`);
}
main().catch(console.error);
# Run the scraper using Bun
bun run cli
# Or if installed globally
nitter-scraper
- Fetches tweets from Nitter without authentication
- Handles pagination automatically
- Built-in rate limiting protection
- TypeScript support
fetchTweets(username: string, sinceDate?: Date, maxPages?: number, includeReplies?: boolean): Promise<Tweet[]>
Parameters:
-
username
: Twitter username to scrape (without @) -
sinceDate
: Optional date to start fetching tweets from (default: null) -
maxPages
: Maximum number of pages to fetch (default: 1) -
includeReplies
: Whether to include replies (default: false)
interface Tweet {
id: string;
text: string;
username: string;
created_at: string | null;
timestamp: number | null;
replies: number;
retweets: number;
likes: number;
engagement_score: number;
type: "tweet" | "retweet" | "reply";
reference?: {
id: string;
username: string;
};
}
MIT