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

responsive-youtube.js

v0.2.1

Published

Embed responsive videos in your web sites from Youtube

Downloads

3

Readme

Responsive-youtube.js

Simple script for use Youtube Iframe API in responsive web sites

Requirements

  • IE10+
  • Safari6+
  • Google Chrome
  • Firefox
  • MutationObserver

Note¹: Use if (ResponsiveYoutube.supported)

Note²: Youtube API requires IE10+

HTML usage

<!-- embed video in page -->
<div data-ry-video="TALH8SsQJp4"></div>

<!-- embed video in page without "responsive" -->
<div data-ry-video="5ABos9UTfJU" data-ry-ignore="true"></div>

<script src="responsive-youtube.js"></script>
<script>
ResponsiveYoutube.start();
</script>

Import:

const ResponsiveYoutube = require('responsive-youtube.js');

...

ESM/ES6 import:

import ResponsiveYoutube from 'responsive-youtube.js';

...

RequireJS:

requirejs(['folder/foo/bar/responsive-youtube'], function (ResponsiveYoutube) {
    ...
});

Properties and functions

Name | description --- | --- ResponsiveYoutube.supported | Create players ResponsiveYoutube.start([setup]) | Create players ResponsiveYoutube.on(type, function) | Add global event ResponsiveYoutube.off(type, function) | Remove global event ResponsiveYoutube.destroy() | Destroy all players (use with Angular pagination, Ajax pagination, and Pjax)

Events

Name | equivalent to | callback format --- | --- | --- done | onYouTubeIframeAPIReady | function () {...} create | - | function (player) {...} ready | onReady | function (event, player) {...} state | onStateChange | function (event, player) {...} quality | onPlaybackQualityChange | function (event, player) {...} rate | onPlaybackRateChange | function (event, player) {...} error | onError | function (event, player) {...} api | onApiChange | function (event, player) {...}

More details in: https://developers.google.com/youtube/iframe_api_reference#Events

Example usage:

ResponsiveYoutube.start();

ResponsiveYoutube.on("done", function () {
    //API done...
});

ResponsiveYoutube.on("create", function (player) {
    //Something...
});

ResponsiveYoutube.on("state", function (event, player) {
    //Something...
});

Properties

Property | html5 | description --- | --- | --- autoplay | data-ry-autoplay | This parameter specifies whether the initial video will automatically start to play when the player loads. Supported values are 0 or 1. The default value is 0. cc_load_policy | data-ry-cc_load_policy | Setting the parameter's value to 1 causes closed captions to be shown by default, even if the user has turned captions off. The default behavior is based on user preference. color | data-ry-color | This parameter specifies the color that will be used in the player's video progress bar to highlight the amount of the video that the viewer has already seen. controls | data-ry-controls | This parameter indicates whether the video player controls are displayed disablekb | data-ry-disablekb | Setting the parameter's value to 1 causes the player to not respond to keyboard controls. fs | data-ry-fs | Setting this parameter to 0 prevents the fullscreen button from displaying in the player. The default value is 1, which causes the fullscreen button to display. hl | data-ry-hl | Sets the player's interface language. iv_load_policy | data-ry-iv_load_policy | Setting the parameter's value to 1 causes video annotations to be shown by default, whereas setting to 3 causes video annotations to not be shown by default. The default value is 1. list | data-ry-list | The list parameter, in conjunction with the listType parameter, identifies the content that will load in the player. (no longer be supported as of 15 November 2020) listType | data-ry-listType | The listType parameter, in conjunction with the list parameter, identifies the content that will load in the player. Valid parameter values are playlist, search, and user_uploads (no longer be supported as of 15 November 2020) loop | data-ry-loop | In the case of a single video player, a setting of 1 causes the player to play the initial video again and again. modestbranding | data-ry-modestbranding | This parameter lets you use a YouTube player that does not show a YouTube logo. Set the parameter value to 1 to prevent the YouTube logo from displaying in the control bar. Note that a small YouTube text label will still display in the upper-right corner of a paused video when the user's mouse pointer hovers over the player. playlist | data-ry-playlist | This parameter specifies a comma-separated list of video IDs to play. If you specify a value, the first video that plays will be the VIDEO_ID specified in the URL path, and the videos specified in the playlist parameter will play thereafter. playsinline | data-ry-playsinline | This parameter controls whether videos play inline or fullscreen in an HTML5 player on iOS. rel | data-ry-rel | If the rel parameter is set to 0, related videos will come from the same channel as the video that was just played (changing on or after September 25, 2018) showinfo | data-ry-showinfo | Supported values are 0 and 1. start | data-ry-start | This parameter causes the player to begin playing the video at the given number of seconds from the start of the video. widget_referrer | data-ry-widget_referrer | This parameter identifies the URL where the player is embedded.

More parameters and details in: https://developers.google.com/youtube/player_parameters?playerVersion=HTML5#Parameters

Set default properties in .start():

ResponsiveYoutube.start({
    rel: 0 //Remove related videos
});

Usage in html:

<!-- autoplay -->
<div data-ry-video="hFUQQIsPoVA" data-ry-autoplay="1"></div>

<!-- remove related -->
<div data-ry-video="hFUQQIsPoVA" data-ry-rel="1"></div>

<!-- without controls with closed caption -->
<div data-ry-video="hFUQQIsPoVA" data-ry-controls="0" data-ry-cc_load_policy="1"></div>

Youtube iframe embed with JSON-LD or microdata

Example with JSON-LD

<div data-ry-video="<youtube ID>"></div>

<script type="application/ld+json">{
    "@context": "http://schema.org",
    "@type": "VideoObject",
    "name": "Youtube iframe embed with JSON-LD",
    "description": "Youtube iframe embed with JSON-LD example",
    "thumbnailUrl": "https://i.ytimg.com/vi/<youtube ID>/default.jpg",
    "uploadDate": "2020-08-10T08:01:27Z",
    "duration": "PT15M43S",
    "embedUrl": "https://www.youtube.com/embed/<youtube ID>",
    "interactionCount": "464"
}</script>

Example with microdata

<div itemscope itemprop="video" itemtype="http://schema.org/VideoObject">
    <h2><span itemprop="name">Youtube iframe embed with microdata</span></h2>
    <meta itemprop="duration" content="PT15M43S">
    <meta itemprop="uploadDate" content="2020-08-10T08:01:27Z">
    <meta itemprop="thumbnailURL" content="https://i.ytimg.com/vi/<youtube ID>/default.jpg">
    <meta itemprop="interactionCount" content="464">
    <meta itemprop="embedURL" content="https://youtube.googleapis.com/v/<youtube ID>">
    <p itemprop="description">Youtube iframe embed with microdata example</p>
    <div data-ry-video="<youtube ID>"></div>
</div>

TODO

  • [x] destroy players
  • [ ] Create cover alternative to video