npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

yt_metadata

v0.0.5

Published

A package to fetch YouTube content details, either by URL or search query.

Downloads

35

Readme

npm yt_metadata 0.0.4

YouTube Metadata Fetcher

Module to retrieve metadata of YouTube content, including videos, playlists, and channels. It allows users to fetch this information either by providing a direct YouTube URL or by searching with a query string.

🚔 Tests 🚓 Lint Test

Features

  • Extract media IDs and types from YouTube URLs.
  • Search YouTube content using a query string and fetch corresponding metadata.
  • Support for videos, playlists, and channels.
  • Fetch configurable thumbnail sizes for YouTube media with fallback options.
  • Option to fetch either metadata or the YouTube media ID and what type of media it is.

Installation

To install the module, run the following command in your project directory:

npm install yt_metadata

Usage

Importing the Module

First, import the module in your JavaScript file:

const fetchYoutubeMetadata = require('yt_metadata');

Fetching Metadata

By URL

To fetch metadata from a YouTube URL (video, playlist, or channel):

const url = 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'; // Example YouTube video URL
fetchYoutubeMetadata(url)
  .then(data => console.log(data))
  .catch(err => console.error(err));

The result you can expect is something like this:

{
  mediaType: 'video',
  thumbnailUrl: 'https://i.ytimg.com/vi/dQw4w9WgXcQ/sddefault.jpg',
  title: 'Rick Astley - Never Gonna Give You Up (Official Music Video)',
  channelTitle: 'Rick Astley',
  viewCount: '1478540522',
  likeCount: '17094295'
}

By Search Query

To search YouTube content and fetch metadata using a query string:

const query = 'Never Gonna Give You Up';
fetchYoutubeMetadata(query)
  .then(data => console.log(data))
  .catch(err => console.error(err));

The result you can expect is similar to the example given before.

Fetching specific Data Types

You can specify the type of data to fetch: idOnly for media ID and type, or fullData for a more complete metadata.

// Fetch only media ID and type
fetchYoutubeMetadata(query, 'idOnly')
  .then(data => console.log(data))
  .catch(err => console.error(err));

// Fetch complete metadata
fetchYoutubeMetadata(query, 'fullData')
  .then(data => console.log(data))
  .catch(err => console.error(err));

The result from the first case will be something like this:

{ 
  mediaId: 'dQw4w9WgXcQ', 
  mediaType: 'video' 
}

The result for the second case is similar to before as the default mode is fullData.

Configuration

Thumbnails

You can configure the preferred thumbnail size in the production.config.js file in the config folder. Available options are 'default', 'medium', 'high', 'standard', and 'maxres'; these are set by Youtube and are not always available. The module will attempt to fetch the preferred size and fallback to other sizes if the preferred size is not available.

API Reference

fetchYoutubeMetadata(query: string, fetchType: string): Promise<any>

Fetches YouTube metadata.

Parameters

  • query (string): The YouTube URL or search query string.
  • fetchType (string): Specifies the type of data to fetch (idOnly or fullData).

Returns

  • A Promise that resolves to the fetched metadata or null in case of an error.

Contributing

Contributions are welcome. Please ensure that your contributions adhere to the project coding standards and include appropriate tests.