/twitter-downloader

Scraper for download video & image from Twitter

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Twitter Media Downloader



Table of Contents

Description

  • Used to download video & image from Twitter
  • Use cookies to view sensitive / nsfw content

How to Get Cookie




  • Then you log in first to go to Home
  • Then go to Network and the search filter becomes https://twitter.com/home
  • If it doesn't appear, refresh the page



  • Copy the Cookie and use it

Installation

  • twitter-downloader requires Node.js v12+ to run.

From NPM

npm install twitter-downloader

From YARN

yarn add twitter-downloader

From Github

npm install github:TobyG74/twitter-downloader

Usage

  • authorization - Authorization header for request
  • cookie - Cookie for view sensitive / nsfw content
  • proxy - Proxy for request (http, https, socks5)
const { TwitterDL } = require("twitter-downloader");

const twitter_video_url = "https://twitter.com/AnimeWithRJ/status/1645156770266923008";
const twitter_image_url = "https://twitter.com/GenshinImpact/status/1645308130857820161";

const options = {
  authorization?: "YOUR_AUTHORIZATION", // undefined == use default authorization
  cookie?: "YOUR_COOKIE", // to display sensitive / nsfw content (no default cookies)
  proxy?: "YOUR_PROXY" // support http, https, socks5
}

TwitterDL(twitter_video_url, options)
    .then((result) => {
        console.log(result);
    })
    .catch((e) => {
        console.log(e);
    });

Response

status: "success" | "error"
message?: string
result?: {
    id: string
    createdAt: string
    description: string
    languange: string
    possiblySensitive: boolean
    possiblySensitiveEditable: boolean
    isQuoteStatus: boolean
    mediaCount: number
    author: {
      username: string
      bio: string
      possiblySensitive: boolean
      verified: boolean
      location: string
      profileBannerUrl: string
      profileImageUrl: string
      url: string
      statistics: {
        favoriteCount: number
        followersCount: number
        friendsCount: number
        statusesCount: number
        listedCount: number
        mediaCount: number
      }
    }
    statistics: {
      replieCount: number
      retweetCount: number
      favoriteCount: number
      bookmarkCount: number
      viewCount: number
    }
    media: Media[]
}

/** Image Media */
{
  type: string
  image: string
  expandedUrl: string
}[]

/** Video Media */
{
  type: string
  expandedUrl: string
  cover: string
  duration: string
  videos: {
    bitrate: number
    content_type: string
    quality: string
    url: string
  }[]
}[]

Contributing

This project is open to contributions. Whether you are a beginner or an experienced developer, you can contribute to this project. If you are interested in contributing to this project, please read the CONTRIBUTING.md file before submitting a pull request.

License

This project is licensed under the MIT License - see the LICENSE file for details.