Get the YouTube, Vimeo, Vine, VideoPress, TikTok, Microsoft Stream, Loom or Dailymotion video id from a url or embed string.
npm install get-video-id> 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.
You can install with npm:
```
$ npm install --save get-video-id
or with yarn:
``
$ yarn add get-video-id
You can use this module in Node.js or in the browser. See below for the different importing options.
CommonJS
`js`
const getVideoId = require('get-video-id');
ES Module
`js`
import getVideoId from 'get-video-id';
Browser
`html`
###### Download
###### CDN
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:
`js
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.
`js`
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' }
Returns a metadata Object with the video id and service name:
`String
{
id: | undefined,String
service: | 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.
This module works on the url / embed patterns below.
(where * is the id and ? or & are parameter strings):
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
``
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=
https://google.com/image?url=
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
``
Vimeo unlisted/private urls
``
https://vimeo.com/*/privateHashget-video-id
⚠️ Please note: That _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 urls
``
https://vine.co/v/*
Vine iframe
``
VideoPress urls
``
https://videopress.com/v/*
https://videopress.com/embed/*
VideoPress iframes
``
Microsoft Stream urls
``
https://web.microsoftstream.com/video/*
https://web.microsoftstream.com/embed/video/*
Microsoft Stream iframes
``
TikTok urls
```
https://www.tiktok.com//video/
https://www.tiktok.com//video/?https://vm.tiktok.com/shorLinkId/
:warning: Unsupported TikTok urls
* Shortlink URL (requires a fetch/redirect to find the real id) :
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
``
:warning: Unsupported Dailymotion urls
Channel id urls: http://www.dailymotion.com/hub/_title
Loom urls
``
https://www.loom.com/share/*
https://www.loom.com/share/*?
https://www.loom.com/embed/*
Loom iframes
```
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).
MIT © Michael Wuergler