@yemreak/yt-dlp
TypeScript icon, indicating that this package has built-in type declarations

1.1.5 • Public • Published

@yemreak/yt-dlp

Yes, the readme was created with ChatGPT 😅, but that's okay, no worries! 🙃

Overview

This package provides tools to interact with the yt-dlp utility for downloading media from YouTube and other video platforms. It includes functionality for downloading videos, extracting audio, managing subtitles, and retrieving media information.

Features

  • Download videos and audios: Supports various formats and configurations.
  • Subtitle management: Download and extract text from subtitles in different formats.
  • Media information retrieval: Fetch detailed information about media content.

Installation

npm install @yemreak/yt-dlp

Usage

Initialize

import { YtDlp, YtDlpConfig } from "@yemreak/yt-dlp"

const config: YtDlpConfig = { workdir: "./downloads" }
const ytDlp = new YtDlp(config)

Download Latest yt-dlp Release

Ensure the latest version of yt-dlp is downloaded:

await ytDlp.downloadLatestReleaseIfNotExists()

Download Video

Download a video with custom format settings:

const videoUrls = await ytDlp.download({
	url: "https://youtube.com/watch?v=example",
	format: "ba", // best audio
})

Extract Media Information

Retrieve detailed information from a video URL:

const mediaInfo = await ytDlp.retrieveMediaInfoList(
	"https://youtube.com/watch?v=example"
)

Download and Extract Subtitles

Download subtitles and extract text:

const subtitleText = await ytDlp.downloadSubtitleText({
	info: mediaInfo[0],
	lang: "en",
})

Practical Examples

Batch Download

Download multiple videos by passing a list of URLs:

for (const url of [
	"https://youtube.com/watch?v=example1",
	"https://youtube.com/watch?v=example2",
]) {
	await ytDlp.download({ url })
}

Advanced Subtitle Handling

Download subtitles in different languages and formats, then extract and save the text:

const langs: Language[] = ["en", "es", "de"]
for (const lang of langs) {
	const subtitlePath = await ytDlp.downloadSubtitle({ info: mediaInfo[0], lang })
	const extractedText = ytDlp.extractTextFromSubtitles(subtitlePath)
	console.log(`Extracted Text in ${lang}:`, extractedText)
}

Error Handling

Implement robust error handling to manage potential download and extraction failures:

try {
	const videoUrls = await ytDlp.download({
		url: "https://youtube.com/watch?v=example",
	})
} catch (error) {
	console.error("Failed to download video:", error)
}

Package Sidebar

Install

npm i @yemreak/yt-dlp

Weekly Downloads

41

Version

1.1.5

License

ISC

Unpacked Size

42 kB

Total Files

23

Last publish

Collaborators

  • yemreak