{"id":42347,"library":"youtube-duration","title":"youtube-duration","description":"A lightweight utility to parse and format ISO 8601 duration strings (used by YouTube API v3) into human-readable time strings (e.g., '3:11') or total seconds. v1.0.0 is the current stable version. It focuses solely on duration formatting/conversion with no dependencies, making it ideal for serverless or browser projects. Unlike moment-duration-format, it is YouTube-API-tailored and much smaller.","status":"active","version":"1.0.0","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","Youtube","API","Video","Duration","Format"],"install":[{"cmd":"npm install youtube-duration","lang":"bash","label":"npm"},{"cmd":"yarn add youtube-duration","lang":"bash","label":"yarn"},{"cmd":"pnpm add youtube-duration","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Package does not ship ESM; requires CommonJS or dynamic import. Named import only works with bundlers like webpack (cjs-to-esm transformation).","wrong":"const format = require('youtube-duration').format;","symbol":"format","correct":"import { format } from 'youtube-duration';"},{"note":"Named export; function is also available as require(...).toSecond in Node.","wrong":"const ytDuration = require('youtube-duration'); ytDuration.toSecond(...);","symbol":"toSecond","correct":"import { toSecond } from 'youtube-duration';"},{"note":"Module has no default export. Only named exports format and toSecond exist.","wrong":"module.exports = ...","symbol":"default export","correct":"import ytDuration from 'youtube-duration';"}],"quickstart":{"code":"const { format, toSecond } = require('youtube-duration');\n\nconsole.log(format('PT3M11S')); // 3:11\nconsole.log(format('P1DT1M27S')); // 24:01:27\n\nconsole.log(toSecond('PT3M11S')); // 191\nconsole.log(toSecond('P1DT1M27S')); // 1527\nconsole.log(toSecond('PT1H')); // 3600","lang":"javascript","description":"Shows how to import and use both format and toSecond functions with various ISO 8601 duration strings."},"warnings":[{"fix":"Validate duration format before calling functions. Use regex /^PT?\\d+[HMS]/ or similar.","message":"Input must be valid ISO 8601 duration (e.g., 'PT1H30M'). Invalid strings may throw or return unexpected values.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Check for zero second input and handle separately if needed.","message":"format function outputs '0:00' for zero duration; not all applications may expect that.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use require() or dynamic import. For ESM projects, consider a bundler that can consume CJS.","message":"Package is CommonJS only; no ES modules support. Using import may require bundler configuration.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'11':28 '3':27 '8601':12 'api':18,64,71 'browser':53 'current':35 'depend':46 'durat':3,13,42,58,73 'e.g':26 'focus':39 'format':10,59,74 'formatting/conversion':43 'human':22 'human-read':21 'ideal':49 'iso':11 'javascript':69 'lightweight':5 'make':47 'moment':57 'moment-duration-format':56 'much':67 'pars':8 'project':54 'readabl':23 'second':31 'serverless':51 'smaller':68 'sole':40 'stabl':36 'string':14,25 'tailor':65 'time':24 'total':30 'unlik':55 'use':15 'util':6 'v1.0.0':32 'v3':19 'version':37 'video':72 'youtub':2,17,63,70 'youtube-api-tailor':62 'youtube-dur':1","created_at":"2026-06-04T18:56:49.101035+00:00","updated_at":"2026-06-04T18:56:49.101035+00:00","problems":[{"fix":"Run 'npm install youtube-duration' and use require('youtube-duration').","cause":"Package not installed or incorrect import path in Node.js.","error":"Cannot find module 'youtube-duration'"},{"fix":"Use named import: const { format } = require('youtube-duration');","cause":"Using default import from CJS module which has no default export.","error":"ytDuration.format is not a function"},{"fix":"Double-check package name and install it.","cause":"Package not found due to typo or missing installation.","error":"undefined is not a function (evaluating 'require('youtube-duration').format(...)')"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":"youtube-duration","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-04","next_check":"2026-09-02","install_tag":null}}