Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
videojs-errors
Advanced tools
A plugin that displays user-friendly messages when Video.js encounters an error.
Maintenance Status: Stable
Importing via npm/Babel/Browserify/webpack
npm install videojs-errors
Then import in your JavaScript
import videojs from 'video.js';
import 'videojs-errors';
Installing the styles will depend on your build tool. Here's an example of including styles with brunch. See Including Module's styles section.
Importing via script tag
The plugin automatically registers itself when you include videojs.errors.js in your page:
<script src="videojs.errors.js"></script>
You probably want to include the default stylesheet, too. It displays error messages as a semi-transparent overlay on top of the video element itself. It's designed to match up fairly well with the default Video.js styles:
<link href="videojs.errors.css" rel="stylesheet">
If you're not a fan of the default styling, you can drop in your own stylesheet. The only new element to worry about is vjs-errors-dialog
which is the container for the error messages.
The plugin supports multiple languages when using Video.JS v4.7.3 or greater. In order to add additional language support, add the language file after your plugin as follows:
<script src="videojs.errors.js"></script>
<script src="lang/es.js"></script>
Note: A formatted example is available for Spanish under 'lang/es.js'.
Once you've initialized Video.js, you can activate the errors plugin. The plugin has a set of default error messages for the standard HTML5 video errors keyed off their runtime values:
1
)2
)3
)4
)5
)Additionally, some custom errors have been added as reference for future extension.
'unknown'
)-1
)-2
)Note:
type
beginning with PLAYER_ERR_
versus the standardized MEDIA_ERR
to avoid confusion.true
)If the video element emits any of those errors, the corresponding error message will be displayed. You can override and add custom error codes by supplying options to the plugin:
player.errors({
errors: {
3: {
headline: 'This is an override for the generic MEDIA_ERR_DECODE',
message: 'This is a custom error message'
}
}
});
Or by calling player.errors.extend
after initializing the plugin:
player.errors();
player.errors.extend({
3: {
headline: 'This is an override for the generic MEDIA_ERR_DECODE',
message: 'This is a custom error message'
},
foo: {
headline: 'My custom "foo" error',
message: 'A custom "foo" error message.',
type: 'PLAYER_ERR_FOO'
}
});
If you define custom error messages, you'll need to let Video.js know when to emit them yourself:
player.error({code: 'foo', dismiss: true});
If an error is emitted that doesn't have an associated key, a generic, catch-all message is displayed. You can override that text by supplying a message for the key unknown
.
As of v2.0.0, custom errors can be defined without a code. In these cases, the key provided will be used as the code. For example, the custom foo
error above could be:
player.errors.extend({
PLAYER_ERR_FOO: {
headline: 'My custom "foo" error',
message: 'A custom "foo" error message.'
}
});
The difference here being that one would then trigger it via:
player.error({code: 'PLAYER_ERR_FOO'});
getAll()
After the errors plugin has been initialized on a player, a getAll()
method is available on the errors()
plugin method. This function returns an object with all the errors the plugin currently understands:
player.errors();
var errors = player.errors.getAll();
console.log(errors['1'].type); // "MEDIA_ERR_ABORTED"
timeout()
After the errors plugin has been initialized on a player, a timeout()
method is available on the errors()
plugin method.
A new timeout may be set by passing a timeout in milliseconds, e.g. player.errors.timeout(5 * 1000)
.
Setting the timeout to Infinity
or -1
will turn off this check.
If no argument is passed, the current timeout value is returned.
backgroundTimeout()
This functions exactly like timeout except the default value is 5 minutes.
On iPhones, default errors are not dismissible. The video element intercepts all user interaction so error message dialogs miss the tap events. If your video is busted anyways, you may not be that upset about this.
FAQs
A Video.js plugin for custom error reporting
The npm package videojs-errors receives a total of 1,135 weekly downloads. As such, videojs-errors popularity was classified as popular.
We found that videojs-errors demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 198 open source maintainers collaborating on the project.
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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.