Socket
Socket
Sign inDemoInstall

get-video-id

Package Overview
Dependencies
2
Maintainers
1
Versions
45
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    get-video-id

Get the YouTube, Vimeo, Vine, VideoPress, TikTok, Microsoft Stream, Loom or Dailymotion video id from a url or embed string.


Version published
Weekly downloads
32K
increased by2.51%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

get-video-id codecov

Get the YouTube, Vimeo, Vine, VideoPress, TikTok, Microsoft Stream, Loom or Dailymotion video id from a url or embed string.

Pull Requests are welcome if you would like to see support for other video services or if you find an unsupported video url pattern.

Install

You can install with npm:

$ npm install --save get-video-id

or with yarn:

$ yarn add get-video-id

Import

You can use this module in Node.js or in the browser. See below for the different importing options.

CommonJS

const getVideoId = require('get-video-id');

ES Module

import getVideoId from 'get-video-id';

Browser

<script src="https://cdn.jsdelivr.net/npm/get-video-id/dist/get-video-id.umd.min.js"></script>
Download
CDN

Usage

Simply supply the module with a url or embed string matching any of the patterns known by this module and its metadata of id and service will be returned:

import getVideoId from 'get-video-id';

getVideoId('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
//=> { id: 'dQw4w9WgXcQ', service: 'youtube' }

const { id } = getVideoId('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
//=> 'dQw4w9WgXcQ'

get-video-id can also find the video buried in a Google redirection URL if it contains a reference to any of the supported URL patterns.

getVideoId('https://www.google.cz/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwj30L2MvpDVAhUFZVAKHb8CBaYQuAIIIjAA&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ');
//=> { id: 'dQw4w9WgXcQ', service: 'youtube' }

API

getVideoId(input)

Returns a metadata Object with the video id and service name:

{
  id: `String` | `undefined`,
  service: `String` | `undefined`
}
input

Type: String

The url (or embed code, or google redirect url) from which you want to find the video id. See the Patterns section to see the formats that can be supplied.

Patterns

This module works on the url / embed patterns below. (where * is the id and ? or & are parameter strings):

YouTube

YouTube Shortcodes

http://youtu.be/*?
https://youtu.be/*
http://youtu.be/*
http://y2u.be/*
youtube://

YouTube Shorts

https://youtube.com/shorts/*
https://www.youtube.com/shorts/*

YouTube /v/ or /vi/

http://www.youtube.com/v/*
http://youtube.com/vi/*?
http://youtube.com/v/*?

YouTube v= or vi=

http://www.youtube.com/ytscreeningroom?v=*
http://www.youtube.com/watch?v=*?&
https://www.youtube.com/watch?v=*
http://youtube.com/watch?vi=*&
http://youtube.com/?vi=*&
http://youtube.com/?v=*

YouTube /e/

https://www.youtube.com/e/*
https://www.youtube.com/e/*?
http://www.youtube.com/e/*
http://www.youtube.com/e/*?

YouTube image links /vi/*/ or /an_webp/*/

https://i.ytimg.com/vi/*/hqdefault.jpg
https://i.ytimg.com/an_webp/MYDcdp-VNmQ/mqdefault_6s.webp

YouTube embed

http://www.youtube.com/embed/*?
https://www.youtube.com/embed/*

YouTube user

http://www.youtube.com/user/username#p/a/u/2/*
http://www.youtube.com/user/username#p/u/1/*?
http://www.youtube.com/user/username#p/u/1/*

YouTube iframe

<iframe width="560" height="315" src="https://www.youtube.com/embed/*" frameborder="0" allowfullscreen></iframe>

YouTube -nocookie

www.youtube-nocookie.com/embed/*?

YouTube Attribution Link

http://www.youtube.com/attribution_link?u=%2Fwatch%3Fv%3D*%26
http://www.youtube.com/attribution_link?u=%2Fwatch%3Fv%3D
http://www.youtube.com/attribution_link?u=/watch?v=*&
http://www.youtube.com/attribution_link?u=/watch?v=*
http://www.youtube.com/attribution_link?/watch?v=*

YouTube live URLs

https://www.youtube.com/live/*
https://youtube.com/live/*
https://youtube.com/live/*?

Google Redirection to YouTube

https://google.cz/url?source=web&url=<YOUTUBE_URL>
https://google.com/image?url=<YOUTUBE_URL>

Vimeo

Vimeo urls

https://vimeo.com/*
https://vimeo.com/*?
https://player.vimeo.com/video/*
https://player.vimeo.com/video/*?
https://www.vimeo.com/*
https://www.vimeo.com/*?

Vimeo swf embed

http://vimeo.com/foo.swf?clip_id=1234

Vimeo events

https://vimeo.com/event/*

Vimeo iframe

<iframe src="https://player.vimeo.com/video/*" ...

Vimeo unlisted/private urls

https://vimeo.com/*/privateHash

⚠️ Please note: That get-video-id will extract the id from the private/unlisted URLs formats for Vimeo, but the private hash would still be required to rebuild the URL in order to make it reachable/sharable in a browser. If you use get-video-id to help you rebuild URLs, you will want to look for this pattern yourself and remember to include the privateHash in the url you want to share. get-video-id focuses on extracing video ids, and ignores any other special paramaters or formats at the moment.

Vine

Vine urls

https://vine.co/v/*

Vine iframe

<iframe src="https://vine.co/v/*/embed/simple" width="600" height="600" frameborder="0"></iframe>
<iframe src="https://vine.co/v/*/embed/postcard" width="600" height="600" frameborder="0"></iframe>

VideoPress

VideoPress urls

https://videopress.com/v/*
https://videopress.com/embed/*

VideoPress iframes

<iframe src="https://videopress.com/embed/zcnJVzQF" width="600" height="600"></iframe>

Microsoft Stream

Microsoft Stream urls

https://web.microsoftstream.com/video/*
https://web.microsoftstream.com/embed/video/*

Microsoft Stream iframes

<iframe src="https://web.microsoftstream.com/embed/video/*?&" width="640" height="360"></iframe>

TikTok

TikTok urls

https://www.tiktok.com/*/video/*
https://www.tiktok.com/*/video/*?

:warning: Unsupported TikTok urls

  • Shortlink URL (requires a fetch/redirect to find the real id) : https://vm.tiktok.com/shorLinkId/

Dailymotion

Dailymotion urls

http://www.dailymotion.com/video/*_text
http://www.dailymotion.com/video/*
http://www.dailymotion.com/fr/relevance/search/search+query/1#video=*
https://www.dailymotion.com/video/*?playlist=
http://dai.ly/*

Dailymotion iframes

<iframe src="https://www.dailymotion.com/embed/video/*" width="600" height="600"></iframe>

:warning: Unsupported Dailymotion urls

  • Channel id urls: http://www.dailymotion.com/hub/*_title

Loom

Loom urls

https://www.loom.com/share/*
https://www.loom.com/share/*?
https://www.loom.com/embed/*

Loom iframes

<iframe src="https://www.loom.com/embed/*" width="600" height="600"></iframe>

Contributing

If you discover a url pattern that is not covered by this module, please open an issue to report it, or submit a Pull Request. For any submitted pull requests, please ensure that you include unit test(s) to fully cover your code contribution(s).

License

MIT © Michael Wuergler

Keywords

FAQs

Last updated on 21 Feb 2024

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc