
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
basic-video
Advanced tools
A simple and consistent API for web video playback
Supports all default features for <video>
and <audio>
tags, with some additional functionality.
This repo exists solely as an API layer around the default HTMLMediaElement. It's sole purpose is to provide basic video playback for a developer to create their own custom video player.
To see a sample of the api with custom controls. Check out the basic-video-player repository.
npm install basic-video
<video id="player" preload="auto" controls>
import BasicVideo from 'basic-video';
const basicVideo = new BasicVideo(document.getElementById('player'), {
poster: 'https://d292x7cpdimrbp.cloudfront.net/video/poster.jpg',
sources: [
{
src: 'https://d292x7cpdimrbp.cloudfront.net/video/1080.mp4',
type: 'video/mp4',
label: '1080'
},
{
src: 'https://d292x7cpdimrbp.cloudfront.net/video/720.mp4',
type: 'video/mp4',
label: '720'
},
{
src: 'https://d292x7cpdimrbp.cloudfront.net/video/480.mp4',
type: 'video/mp4',
label: '480'
},
],
});
import BasicVideo from 'basic-video';
const basicVideo = new BasicVideo(document.getElementById('player'), {
poster: 'https://d292x7cpdimrbp.cloudfront.net/video/poster.jpg',
hlsManifestUrl: 'https://d292x7cpdimrbp.cloudfront.net/video/video.m3u8',
});
//Get
const currentTime = basicVideo.currentTime;
//Set
basicVideo.currentTime = 30;
Prop | Type | Get | Set | Info |
---|---|---|---|---|
currentSource | String | x | x | Current media source being played |
poster | String | x | x | Poster on the video element |
currentVolume | Number | x | x | Current volume of the media |
buffered | Object | x | TimeRanges object (buffered.start(0) and buffered.end(0) to get the range) | |
isMuted | Boolean | x | x | Mute the player |
isReady | Boolean | x | Can the media play through without interruption | |
readyState | Number | x | MDN | |
totalDuration | Number | x | Total duration of the media in seconds | |
currentTime | Number | x | x | The current time of the media in seconds |
currentProgress | Number | x | The current progress percentage of the media | |
playbackRate | Number | x | x | The playback rate of the media (1 for normal, 0.5 for half etc...) |
playbackQualities | Array | x | An array of all available qualities with their label and source | |
currentPlaybackQuality | Number | x | x | Current index of the playbackQualities array |
basicVideo.play();
Method | Params | Returns | Info |
---|---|---|---|
init | Promise | Initialize the player with existing props (invoked in the constructor). Can be used to refresh the player if you want | |
forceLoad | Promise | Forces the player to reload the media, returns a promise that resolves when the isReady prop returns true. Times itself out after 5 minutes. | |
play | Play the media | ||
pause | Pause the media | ||
loadHlsJs (static) | Create a script element with the latest version of hls.js | ||
attachHls | manifest (string) | Attach an instance of hls.js to the video element with am HLS Manifest URL |
All events are emit from the MediaElement object (the <video>
element you injected into the player).
Event | Info |
---|---|
init | emit after the init function resolves |
You can also hook into all of the DOM Events available to the HTMLMediaElement
basicVideo.MediaElement.addEventListener('play' => event {
console.log(event);
)
FAQs
Basic Video Player wrapper utilizing the MediaElement API
The npm package basic-video receives a total of 4 weekly downloads. As such, basic-video popularity was classified as not popular.
We found that basic-video demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.