Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tobyg74/twitter-downloader

Scraper for download video & image from Twitter
https://github.com/tobyg74/twitter-downloader

twitter twitter-api twitter-dl twitter-downloader twitter-scraper

Last synced: 10 days ago
JSON representation

Scraper for download video & image from Twitter

Awesome Lists containing this project

README

        


Twitter Media Downloader












# Table of Contents

- [Description](#description)
- [How to Get Cookie](#how-to-get-cookie)
- [Installation](#installation)
- [From NPM](#from-npm)
- [From Yarn](#from-yarn)
- [From Github](#from-github)
- [Usage](#usage)
- [Response](#response)
- [Contributing](#contributing)
- [License](#license)

# Description

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

## How to Get Cookie

- Go to https://twitter.com/login
- Then right click on the mouse and select "Inspect" or press "CTRL + SHIFT + I"







- 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)

```js
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

```ts
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](CONTRIBUTING.md) file before submitting a pull request.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.