Security News
Supply Chain Attack Detected in Solana's web3.js Library
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
Node.js YTDL Library for downloading videos or audio using the Cobalt API.
A Node.js library for downloading videos and audio from YouTube, TikTok, Twitter, and more. Powered by Cobalt.
Powered by Cobalt
This library relies on Cobalt’s free API.
To install the cobalt-api
library, you need to use npm. Run the following command:
npm install cobalt-api
After installing the library, you can start using it in your Node.js project. Here's a basic example:
const CobaltAPI = require("cobalt-api");
const cobalt = new CobaltAPI("https://www.youtube.com/watch?v=OAr6AIvH9VY");
cobalt
.sendRequest()
.then((response) => {
if (response.status) {
console.log("Download successful", response.data);
} else {
console.log("Download failed", response.text);
}
})
.catch((error) => console.error("Error:", error));
constructor(url: string)
Initializes the CobaltAPI
class with a URL.
url
(string): The URL to be used in requests.setQuality(quality: string): void
Sets the video quality for downloads.
quality
(string): The desired video quality (e.g., 144
, 720
, max
).Error
if the provided quality is not valid.setFilenamePattern(pattern: string): void
Sets the filename pattern for downloaded files.
pattern
(string): The desired filename pattern. Available patterns: classic, basic, pretty, nerdy.Error
if the provided pattern is not valid.setVCodec(codec: string): void
Sets the video codec for downloads.
codec
(string): The desired video codec (e.g., h264
, av1
, vp9
).Error
if the provided codec is not valid.setAFormat(format: string): void
Sets the audio format for downloads.
format
(string): The desired audio format (e.g., mp3
, ogg
, wav
).Error
if the provided format is not valid.setAcceptLanguage(language: string): void
Sets the custom Accept-Language header value for requests.
language
(string): The custom Accept-Language header value.enableAudioOnly(): void
Enables downloading only audio.
enableTTFullAudio(): void
Enables downloading the original sound from a TikTok video.
enableAudioMuted(): void
Enables muting the audio track in video downloads.
enableDubLang(): void
Enables using the Accept-Language header for YouTube video audio tracks.
enableDisableMetadata(): void
Enables disabling file metadata.
enableTwitterGif(): void
Enables converting Twitter gifs to .gif format.
enableTiktokH265(): void
Enables preferring 1080p h265 videos for TikTok.
sendRequest(): Promise<object>
Sends the configured request to the API and returns the response.
Error
if there is an error in sending the request.getAvailableQualities(): Promise<Array<string>>
Fetches the available video qualities for a YouTube URL.
Error
if the URL is invalid or fetching qualities fails.key | type | variables |
---|---|---|
status | string | error / redirect / stream / success / rate-limit / picker |
text | string | various text, mostly used for errors |
url | string | direct link to a file or a link to cobalt's live render |
pickerType | string | various / images |
picker | array | array of picker items |
audio | string | direct link to a file or a link to cobalt's live render |
Source: Cobalt API Documentation - Response Body Variables
item type: object
key | type | variables | description |
---|---|---|---|
type | string | video / photo / gif | used only if pickerType is various |
url | string | direct link to a file or a link to cobalt's live render | |
thumb | string | item thumbnail that's displayed in the picker | used for video and gif types |
Source: Cobalt API Documentation - Picker Item Variables
This list is not final and keeps expanding over time.
service | video + audio | only audio | only video | metadata | rich file names |
---|---|---|---|---|---|
bilibili.com & bilibili.tv | ✅ | ✅ | ✅ | ➖ | ➖ |
dailymotion | ✅ | ✅ | ✅ | ✅ | ✅ |
instagram posts & reels | ✅ | ✅ | ✅ | ➖ | ➖ |
facebook videos | ✅ | ❌ | ❌ | ➖ | ➖ |
loom | ✅ | ❌ | ✅ | ✅ | ➖ |
ok video | ✅ | ❌ | ✅ | ✅ | ✅ |
✅ | ✅ | ✅ | ➖ | ➖ | |
✅ | ✅ | ✅ | ❌ | ❌ | |
rutube | ✅ | ✅ | ✅ | ✅ | ✅ |
snapchat stories & spotlights | ✅ | ✅ | ✅ | ➖ | ➖ |
soundcloud | ➖ | ✅ | ➖ | ✅ | ✅ |
streamable | ✅ | ✅ | ✅ | ➖ | ➖ |
tiktok | ✅ | ✅ | ✅ | ❌ | ❌ |
tumblr | ✅ | ✅ | ✅ | ➖ | ➖ |
twitch clips | ✅ | ✅ | ✅ | ✅ | ✅ |
twitter/x | ✅ | ✅ | ✅ | ➖ | ➖ |
vimeo | ✅ | ✅ | ✅ | ✅ | ✅ |
vine archive | ✅ | ✅ | ✅ | ➖ | ➖ |
vk videos & clips | ✅ | ❌ | ✅ | ✅ | ✅ |
youtube videos, shorts & music | ✅ | ✅ | ✅ | ✅ | ✅ |
emoji | meaning |
---|---|
✅ | supported |
➖ | impossible/unreasonable |
❌ | not supported |
Source: Cobalt - Supported Services
service | notes or features |
---|---|
Supports reels, photos, and videos. Lets you pick what to save from multi-media posts. | |
Supports public accessible videos content only. | |
Supports photos, gifs, videos and stories. | |
Supports gifs and videos. | |
snapchat | Supports spotlights and stories. Lets you pick what to save from stories. |
rutube | Supports yappy & private links. |
soundcloud | Supports private links. |
tiktok | Supports videos with or without watermark, images from slideshow without watermark, and full (original) audios. |
twitter/x | Lets you pick what to save from multi-media posts. May not be 100% reliable due to current management. |
vimeo | Audio downloads are only available for dash. |
youtube | Supports videos, music, and shorts. 8K, 4K, HDR, VR, and high FPS videos. Rich metadata & dubs. h264/av1/vp9 codecs. |
Source: Cobalt - Additional Notes or Features per Service
If support for a service you want is missing, create an issue (or a pull request 👀) on Cobalt's GitHub repository.
This library is licensed under the MIT License. See the LICENSE file for more details.
For any queries or issues, please contact:
FAQs
Node.js YTDL Library for downloading videos or audio using the Cobalt API.
We found that cobalt-api demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.