Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cobalt-api

Package Overview
Dependencies
Maintainers
0
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cobalt-api

Node.js YTDL Library for downloading videos or audio using the Cobalt API.

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

Cobalt API Node.js

A Node.js library for downloading videos and audio from YouTube, TikTok, Twitter, and more. Powered by Cobalt.

Powered by Cobalt

Powered by Cobalt

This library relies on Cobalt’s free API.

Table of Contents

Installation

To install the cobalt-api library, you need to use npm. Run the following command:

npm install cobalt-api

Usage

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

Methods

constructor(url: string)

Initializes the CobaltAPI class with a URL.

  • Parameters:
    • url (string): The URL to be used in requests.

setQuality(quality: string): void

Sets the video quality for downloads.

  • Parameters:
    • quality (string): The desired video quality (e.g., 144, 720, max).
  • Throws:
    • Error if the provided quality is not valid.

setFilenamePattern(pattern: string): void

Sets the filename pattern for downloaded files.

  • Parameters:
    • pattern (string): The desired filename pattern. Available patterns: classic, basic, pretty, nerdy.
  • Throws:
    • Error if the provided pattern is not valid.

setVCodec(codec: string): void

Sets the video codec for downloads.

  • Parameters:
    • codec (string): The desired video codec (e.g., h264, av1, vp9).
  • Throws:
    • Error if the provided codec is not valid.

setAFormat(format: string): void

Sets the audio format for downloads.

  • Parameters:
    • format (string): The desired audio format (e.g., mp3, ogg, wav).
  • Throws:
    • Error if the provided format is not valid.

setAcceptLanguage(language: string): void

Sets the custom Accept-Language header value for requests.

  • Parameters:
    • 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.

  • Returns:
    • A promise that resolves to an object containing the status and data of the response.
  • Throws:
    • Error if there is an error in sending the request.

getAvailableQualities(): Promise<Array<string>>

Fetches the available video qualities for a YouTube URL.

  • Returns:
    • A promise that resolves to an array of available video qualities.
  • Throws:
    • Error if the URL is invalid or fetching qualities fails.

Response Body Variables

keytypevariables
statusstringerror / redirect / stream / success / rate-limit / picker
textstringvarious text, mostly used for errors
urlstringdirect link to a file or a link to cobalt's live render
pickerTypestringvarious / images
pickerarrayarray of picker items
audiostringdirect link to a file or a link to cobalt's live render

Source: Cobalt API Documentation - Response Body Variables

Picker Item Variables

item type: object

keytypevariablesdescription
typestringvideo / photo / gifused only if pickerType is various
urlstringdirect link to a file or a link to cobalt's live render
thumbstringitem thumbnail that's displayed in the pickerused for video and gif types

Source: Cobalt API Documentation - Picker Item Variables

Supported Services

This list is not final and keeps expanding over time.

servicevideo + audioonly audioonly videometadatarich file names
bilibili.com & bilibili.tv
dailymotion
instagram posts & reels
facebook videos
loom
ok video
pinterest
reddit
rutube
snapchat stories & spotlights
soundcloud
streamable
tiktok
tumblr
twitch clips
twitter/x
vimeo
vine archive
vk videos & clips
youtube videos, shorts & music
emojimeaning
supported
impossible/unreasonable
not supported

Source: Cobalt - Supported Services

Additional Notes or Features

servicenotes or features
instagramSupports reels, photos, and videos. Lets you pick what to save from multi-media posts.
facebookSupports public accessible videos content only.
pinterestSupports photos, gifs, videos and stories.
redditSupports gifs and videos.
snapchatSupports spotlights and stories. Lets you pick what to save from stories.
rutubeSupports yappy & private links.
soundcloudSupports private links.
tiktokSupports videos with or without watermark, images from slideshow without watermark, and full (original) audios.
twitter/xLets you pick what to save from multi-media posts. May not be 100% reliable due to current management.
vimeoAudio downloads are only available for dash.
youtubeSupports 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.

License

This library is licensed under the MIT License. See the LICENSE file for more details.

Contact

For any queries or issues, please contact:

References

Keywords

FAQs

Package last updated on 01 Aug 2024

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc