DownloadAnything
One link, any platform. It's Free!
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 | webmBilibili
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 HDRFacebook
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: requiredX / 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, HDRInstagram
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 | webmBilibili
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 HDRFacebook
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: requiredX / 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, HDRInstagram
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 | webmBilibili
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 HDRFacebook
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: requiredX / 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, HDRInstagram
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 | webmBilibili
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 HDRFacebook
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: requiredX / 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, HDRInstagram
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 | webmBilibili
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 HDRFacebook
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: requiredX / 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, HDRInstagram
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 | webmBilibili
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 HDRFacebook
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: requiredX / 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, HDRInstagram
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