DownloadAnything

One link, any platform. It's Free!

Download

Supported platforms

TikTok
const tiktok = require('tk');
const vid = await tiktok
  .resolve(url);
const stream = vid.download({
  quality: 'hd',
  watermark: false,
});
stream.pipe(fs.create(out));
console.log('done:', vid.id);
// format: mp4 | webm
Bilibili
import { BiliAPI } from 'bili';
const ep = await BiliAPI
  .parseVideo(bvid);
const dash = ep.getDash();
const video = dash.select({
  codec: 'avc', res: 1080
});
await video.save(outputDir);
log('saved:', ep.title);
// supports: 4K HDR
Facebook
const fb = new FBClient(token);
const post = await fb
  .getPost(postId);
const media = post.attachments
  .filter(a => a.type === 'video');
const src = media[0].source;
await downloadFile(src, dest);
log('fb video saved');
// auth: required
X / Twitter
const { TwitterApi } = require('x');
const tweet = await api
  .v2.singleTweet(id);
const variants = tweet.media
  .filter(m => m.type === 'video')
  .flatMap(m => m.variants);
const best = variants.sort(
  (a,b) => b.bitrate - a.bitrate
)[0];
await fetch(best.url);
YouTube
const ytdl = require('ytdl-core');
const info = await ytdl
  .getInfo(videoUrl);
const format = ytdl.chooseFormat(
  info.formats, {
    quality: 'highestvideo'
});
ytdl(videoUrl, { format })
  .pipe(fs.createWriteStream(p));
// supports: 8K, HDR
Instagram
const ig = new IGClient();
await ig.login(user, pass);
const post = await ig.media
  .info(mediaId);
const url = post.items[0]
  .video_versions[0].url;
const res = await fetch(url);
const buf = await res.buffer();
fs.writeFileSync(out, buf);
// stories + reels
TikTok
const tiktok = require('tk');
const vid = await tiktok
  .resolve(url);
const stream = vid.download({
  quality: 'hd',
  watermark: false,
});
stream.pipe(fs.create(out));
console.log('done:', vid.id);
// format: mp4 | webm
Bilibili
import { BiliAPI } from 'bili';
const ep = await BiliAPI
  .parseVideo(bvid);
const dash = ep.getDash();
const video = dash.select({
  codec: 'avc', res: 1080
});
await video.save(outputDir);
log('saved:', ep.title);
// supports: 4K HDR
Facebook
const fb = new FBClient(token);
const post = await fb
  .getPost(postId);
const media = post.attachments
  .filter(a => a.type === 'video');
const src = media[0].source;
await downloadFile(src, dest);
log('fb video saved');
// auth: required
X / Twitter
const { TwitterApi } = require('x');
const tweet = await api
  .v2.singleTweet(id);
const variants = tweet.media
  .filter(m => m.type === 'video')
  .flatMap(m => m.variants);
const best = variants.sort(
  (a,b) => b.bitrate - a.bitrate
)[0];
await fetch(best.url);
YouTube
const ytdl = require('ytdl-core');
const info = await ytdl
  .getInfo(videoUrl);
const format = ytdl.chooseFormat(
  info.formats, {
    quality: 'highestvideo'
});
ytdl(videoUrl, { format })
  .pipe(fs.createWriteStream(p));
// supports: 8K, HDR
Instagram
const ig = new IGClient();
await ig.login(user, pass);
const post = await ig.media
  .info(mediaId);
const url = post.items[0]
  .video_versions[0].url;
const res = await fetch(url);
const buf = await res.buffer();
fs.writeFileSync(out, buf);
// stories + reels
TikTok
const tiktok = require('tk');
const vid = await tiktok
  .resolve(url);
const stream = vid.download({
  quality: 'hd',
  watermark: false,
});
stream.pipe(fs.create(out));
console.log('done:', vid.id);
// format: mp4 | webm
Bilibili
import { BiliAPI } from 'bili';
const ep = await BiliAPI
  .parseVideo(bvid);
const dash = ep.getDash();
const video = dash.select({
  codec: 'avc', res: 1080
});
await video.save(outputDir);
log('saved:', ep.title);
// supports: 4K HDR
Facebook
const fb = new FBClient(token);
const post = await fb
  .getPost(postId);
const media = post.attachments
  .filter(a => a.type === 'video');
const src = media[0].source;
await downloadFile(src, dest);
log('fb video saved');
// auth: required
X / Twitter
const { TwitterApi } = require('x');
const tweet = await api
  .v2.singleTweet(id);
const variants = tweet.media
  .filter(m => m.type === 'video')
  .flatMap(m => m.variants);
const best = variants.sort(
  (a,b) => b.bitrate - a.bitrate
)[0];
await fetch(best.url);
YouTube
const ytdl = require('ytdl-core');
const info = await ytdl
  .getInfo(videoUrl);
const format = ytdl.chooseFormat(
  info.formats, {
    quality: 'highestvideo'
});
ytdl(videoUrl, { format })
  .pipe(fs.createWriteStream(p));
// supports: 8K, HDR
Instagram
const ig = new IGClient();
await ig.login(user, pass);
const post = await ig.media
  .info(mediaId);
const url = post.items[0]
  .video_versions[0].url;
const res = await fetch(url);
const buf = await res.buffer();
fs.writeFileSync(out, buf);
// stories + reels
TikTok
const tiktok = require('tk');
const vid = await tiktok
  .resolve(url);
const stream = vid.download({
  quality: 'hd',
  watermark: false,
});
stream.pipe(fs.create(out));
console.log('done:', vid.id);
// format: mp4 | webm
Bilibili
import { BiliAPI } from 'bili';
const ep = await BiliAPI
  .parseVideo(bvid);
const dash = ep.getDash();
const video = dash.select({
  codec: 'avc', res: 1080
});
await video.save(outputDir);
log('saved:', ep.title);
// supports: 4K HDR
Facebook
const fb = new FBClient(token);
const post = await fb
  .getPost(postId);
const media = post.attachments
  .filter(a => a.type === 'video');
const src = media[0].source;
await downloadFile(src, dest);
log('fb video saved');
// auth: required
X / Twitter
const { TwitterApi } = require('x');
const tweet = await api
  .v2.singleTweet(id);
const variants = tweet.media
  .filter(m => m.type === 'video')
  .flatMap(m => m.variants);
const best = variants.sort(
  (a,b) => b.bitrate - a.bitrate
)[0];
await fetch(best.url);
YouTube
const ytdl = require('ytdl-core');
const info = await ytdl
  .getInfo(videoUrl);
const format = ytdl.chooseFormat(
  info.formats, {
    quality: 'highestvideo'
});
ytdl(videoUrl, { format })
  .pipe(fs.createWriteStream(p));
// supports: 8K, HDR
Instagram
const ig = new IGClient();
await ig.login(user, pass);
const post = await ig.media
  .info(mediaId);
const url = post.items[0]
  .video_versions[0].url;
const res = await fetch(url);
const buf = await res.buffer();
fs.writeFileSync(out, buf);
// stories + reels
TikTok
const tiktok = require('tk');
const vid = await tiktok
  .resolve(url);
const stream = vid.download({
  quality: 'hd',
  watermark: false,
});
stream.pipe(fs.create(out));
console.log('done:', vid.id);
// format: mp4 | webm
Bilibili
import { BiliAPI } from 'bili';
const ep = await BiliAPI
  .parseVideo(bvid);
const dash = ep.getDash();
const video = dash.select({
  codec: 'avc', res: 1080
});
await video.save(outputDir);
log('saved:', ep.title);
// supports: 4K HDR
Facebook
const fb = new FBClient(token);
const post = await fb
  .getPost(postId);
const media = post.attachments
  .filter(a => a.type === 'video');
const src = media[0].source;
await downloadFile(src, dest);
log('fb video saved');
// auth: required
X / Twitter
const { TwitterApi } = require('x');
const tweet = await api
  .v2.singleTweet(id);
const variants = tweet.media
  .filter(m => m.type === 'video')
  .flatMap(m => m.variants);
const best = variants.sort(
  (a,b) => b.bitrate - a.bitrate
)[0];
await fetch(best.url);
YouTube
const ytdl = require('ytdl-core');
const info = await ytdl
  .getInfo(videoUrl);
const format = ytdl.chooseFormat(
  info.formats, {
    quality: 'highestvideo'
});
ytdl(videoUrl, { format })
  .pipe(fs.createWriteStream(p));
// supports: 8K, HDR
Instagram
const ig = new IGClient();
await ig.login(user, pass);
const post = await ig.media
  .info(mediaId);
const url = post.items[0]
  .video_versions[0].url;
const res = await fetch(url);
const buf = await res.buffer();
fs.writeFileSync(out, buf);
// stories + reels
TikTok
const tiktok = require('tk');
const vid = await tiktok
  .resolve(url);
const stream = vid.download({
  quality: 'hd',
  watermark: false,
});
stream.pipe(fs.create(out));
console.log('done:', vid.id);
// format: mp4 | webm
Bilibili
import { BiliAPI } from 'bili';
const ep = await BiliAPI
  .parseVideo(bvid);
const dash = ep.getDash();
const video = dash.select({
  codec: 'avc', res: 1080
});
await video.save(outputDir);
log('saved:', ep.title);
// supports: 4K HDR
Facebook
const fb = new FBClient(token);
const post = await fb
  .getPost(postId);
const media = post.attachments
  .filter(a => a.type === 'video');
const src = media[0].source;
await downloadFile(src, dest);
log('fb video saved');
// auth: required
X / Twitter
const { TwitterApi } = require('x');
const tweet = await api
  .v2.singleTweet(id);
const variants = tweet.media
  .filter(m => m.type === 'video')
  .flatMap(m => m.variants);
const best = variants.sort(
  (a,b) => b.bitrate - a.bitrate
)[0];
await fetch(best.url);
YouTube
const ytdl = require('ytdl-core');
const info = await ytdl
  .getInfo(videoUrl);
const format = ytdl.chooseFormat(
  info.formats, {
    quality: 'highestvideo'
});
ytdl(videoUrl, { format })
  .pipe(fs.createWriteStream(p));
// supports: 8K, HDR
Instagram
const ig = new IGClient();
await ig.login(user, pass);
const post = await ig.media
  .info(mediaId);
const url = post.items[0]
  .video_versions[0].url;
const res = await fetch(url);
const buf = await res.buffer();
fs.writeFileSync(out, buf);
// stories + reels