A lightweight TypeScript/JavaScript library for downloading media from social media platforms
npm install btch-downloaderA lightweight TypeScript/JavaScript library for downloading videos, images, and audio from Instagram, TikTok, YouTube, Capcut, Pinterest, Twitter, X, Google Drive, MediaFire, Douyin, SnackVideo, Xiaohongshu, Cocofun, Spotify, Youtube Search, SounCloud, Threads and Facebook.
To ensure this project runs smoothly, make sure you have the following tools installed.
| Prerequisite | Version |
|-------------------|-----------------------------|
| Node.js | v20+ |
| Package Manager | pnpm 10.18.3+, Yarn 4.10.3+, or Bun 1.3.0+ |
Alternatively, you can include btch-downloader by getting it from npm, downloading it from GitHub releases or by including it via unpkg or another JavaScript CDN, like jsDelivr.
``html
`
---
š Click here to see how to implement this downloader using CDN (HTML Example)
` A single-page downloader for all supported platforms.html
Playground
No data yet...
`
Using npm:
`bash`
npm install btch-downloader
Using yarn:
`bash`
yarn add btch-downloader
Using pnpm:
`bash`
pnpm add btch-downloader
Using bun:
`bash`
bun add btch-downloader
| Service | Link | Status |
|:-------------:|:--------------------------------------------------:|:------:|
| Documentation | Visit |  |
| Backend | Visit |  |
| API Reference | Visit |  |
#### ESM
`javascript
import { igdl } from 'btch-downloader';
const url = 'https://www.instagram.com/p/ByxKbUSnubS/?utm_source=ig_web_copy_link';
igdl(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { igdl } = require('btch-downloader');
const url = 'https://www.instagram.com/p/ByxKbUSnubS/?utm_source=ig_web_copy_link';
igdl(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { ttdl } from 'btch-downloader';
const url = 'https://www.tiktok.com/@omagadsus/video/7025456384175017243?is_from_webapp=1&sender_device=pc&web_id6982004129280116226';
ttdl(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { ttdl } = require('btch-downloader');
const url = 'https://www.tiktok.com/@omagadsus/video/7025456384175017243?is_from_webapp=1&sender_device=pc&web_id6982004129280116226';
ttdl(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { fbdown } from 'btch-downloader';
const url = 'https://www.facebook.com/watch/?v=1393572814172251';
fbdown(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { fbdown } = require('btch-downloader');
const url = 'https://www.facebook.com/watch/?v=1393572814172251';
fbdown(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { twitter } from 'btch-downloader';
const url = 'https://twitter.com/gofoodindonesia/status/1229369819511709697';
twitter(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { twitter } = require('btch-downloader');
const url = 'https://twitter.com/gofoodindonesia/status/1229369819511709697';
twitter(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { youtube } from 'btch-downloader';
const url = 'https://youtube.com/watch?v=C8mJ8943X80';
youtube(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { youtube } = require('btch-downloader');
const url = 'https://youtube.com/watch?v=C8mJ8943X80';
youtube(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { mediafire } from 'btch-downloader';
const url = 'https://www.mediafire.com/file/941xczxhn27qbby/GBWA_V12.25FF-By.SamMods-.apk/file';
mediafire(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { mediafire } = require('btch-downloader');
const url = 'https://www.mediafire.com/file/941xczxhn27qbby/GBWA_V12.25FF-By.SamMods-.apk/file';
mediafire(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { capcut } from 'btch-downloader';
const url = 'https://www.capcut.com/template-detail/7299286607478181121?template_id=7299286607478181121&share_token=80302b19-8026-4101-81df-2fd9a9cecb9c&enter_from=template_detail®ion=ID&language=in&platform=copy_link&is_copy_link=1';
capcut(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { capcut } = require('btch-downloader');
const url = 'https://www.capcut.com/template-detail/7299286607478181121?template_id=7299286607478181121&share_token=80302b19-8026-4101-81df-2fd9a9cecb9c&enter_from=template_detail®ion=ID&language=in&platform=copy_link&is_copy_link=1';
capcut(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { gdrive } from 'btch-downloader';
const url = 'https://drive.google.com/file/d/1thDYWcS5p5FFhzTpTev7RUv0VFnNQyZ4/view?usp=drivesdk';
gdrive(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { gdrive } = require('btch-downloader');
const url = 'https://drive.google.com/file/d/1thDYWcS5p5FFhzTpTev7RUv0VFnNQyZ4/view?usp=drivesdk';
gdrive(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { pinterest } from 'btch-downloader';
const url = 'https://pin.it/4CVodSq';
pinterest(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
// Using a search query
pinterest('Zhao Lusi')
.then(data => console.log(data))
.catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { pinterest } = require('btch-downloader');
const url = 'https://pin.it/4CVodSq';
pinterest(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
// Using a search query
pinterest('Zhao Lusi')
.then(data => console.log(data))
.catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { aio } from 'btch-downloader';
const url = 'https://vt.tiktok.com/ZSkGPK9Kj/';
aio(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { aio } = require('btch-downloader');
const url = 'https://vt.tiktok.com/ZSkGPK9Kj/';
aio(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { douyin } from 'btch-downloader';
const url = 'https://v.douyin.com/ikq8axJ/';
douyin(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { douyin } = require('btch-downloader');
const url = 'https://v.douyin.com/ikq8axJ/';
douyin(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`$3
#### ESM
`javascript
import { xiaohongshu } from 'btch-downloader';
const url = 'http://xhslink.com/o/2jqifpr7GJ5';
xiaohongshu(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { xiaohongshu } = require('btch-downloader');
const url = 'http://xhslink.com/o/2jqifpr7GJ5';
xiaohongshu(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`$3
#### ESM
`javascript
import { snackvideo } from 'btch-downloader';
const url = 'https://s.snackvideo.com/p/j9jKr9dR';
snackvideo(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { snackvideo } = require('btch-downloader');
const url = 'https://s.snackvideo.com/p/j9jKr9dR';
snackvideo(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { cocofun } from 'btch-downloader';
const url = 'https://www.icocofun.com/share/post/379250110809?lang=id&pkg=id&share_to=copy_link&m=81638cf44ba27b2ffa708f3410a4e6c2&d=63cd2733d8d258facd28d44fde5198d4cea826e89af7efc4238ada620140eea3&nt=1';
cocofun(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { cocofun } = require('btch-downloader');
const url = 'https://www.icocofun.com/share/post/379250110809?lang=id&pkg=id&share_to=copy_link&m=81638cf44ba27b2ffa708f3410a4e6c2&d=63cd2733d8d258facd28d44fde5198d4cea826e89af7efc4238ada620140eea3&nt=1';
cocofun(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { spotify } from 'btch-downloader';
const url = 'https://open.spotify.com/track/3zakx7RAwdkUQlOoQ7SJRt';
spotify(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { spotify } = require('btch-downloader');
const url = 'https://open.spotify.com/track/3zakx7RAwdkUQlOoQ7SJRt';
spotify(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { yts } from 'btch-downloader';
const query = 'Somewhere Only We Know';
yts(query).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { yts } = require('btch-downloader');
const query = 'Somewhere Only We Know';
yts(query).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { soundcloud } from 'btch-downloader';
const url = 'https://soundcloud.com/issabella-marchelina/sisa-rasa-mahalini-official-audio?utm_source=clipboard&utm_medium=text&utm_campaign=social_sharing';
soundcloud(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { soundcloud } = require('btch-downloader');
const url = 'https://soundcloud.com/issabella-marchelina/sisa-rasa-mahalini-official-audio?utm_source=clipboard&utm_medium=text&utm_campaign=social_sharing';
soundcloud(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### ESM
`javascript
import { threads } from 'btch-downloader';
const url = 'https://www.threads.net/@cindyyuvia/post/C_Nqx3khgkI/?xmt=AQGzpsCvidh8IwIqOvq4Ov05Zd5raANiVdvCujM_pjBa1Q';
threads(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
`
#### CJS
`javascript
const { threads } = require('btch-downloader');
const url = 'https://www.threads.net/@cindyyuvia/post/C_Nqx3khgkI/?xmt=AQGzpsCvidh8IwIqOvq4Ov05Zd5raANiVdvCujM_pjBa1Q';
threads(url).then(data => console.log(data)).catch(err => console.error(err)); // JSON
``
1. This downloader can only be used to download media that is public or accessible to the public.
2. This application is not affiliated with or endorsed by any application.
3. Ensure you have permission or copyright to download media before using this application.
If you encounter any issues or wish to contribute to the development of this application, please visit our GitHub repository.
btch-downloader is licensed under the MIT License. Please refer to the LICENSE file for more information.