
Research
npm Malware Targets Telegram Bot Developers with Persistent SSH Backdoors
Malicious npm packages posing as Telegram bot libraries install SSH backdoors and exfiltrate data from Linux developer machines.
plyr-react
Advanced tools
A responsive media player that is simple, easy to use, and customizable for video, audio, YouTube, and Vimeo.
You can see a live demo here.
Make sure to select the version for the plyr-react in the dependencies.
# NPM
npm install plyr-react
# Yarn
yarn add plyr-react
<Plyr />
componentThe simplest form of react integration with the plyr is to use the <Plyr />
component, it is best for the static
videos.
import Plyr from "plyr-react"
import "plyr-react/plyr.css"
const plyrProps = {
source: undefined, // https://github.com/sampotts/plyr#the-source-setter
options: undefined, // https://github.com/sampotts/plyr#options
// Direct props for inner video tag (mdn.io/video)
}
function MyPlyrVideo() {
return <Plyr {...plyrProps} />
}
- import "plyr-react/plyr.css"
+ import "plyr-react/dist/plyr.css"
usePlyr
hookIf you need the full control over all if possible integration one can imagine, usePlyr is your hook. Here is a simple
and exact Plyr component made with the usePlyr
hook. Are curios about how it works follow
this thread and
this proposal.
const Plyr = React.forwardRef((props, ref) => {
const { source, options = null, ...rest } = props
const raptorRef = usePlyr(ref, {
source,
options,
})
return <video ref={raptorRef} className="plyr-react plyr" {...rest} />
})
// Function base component
const MyComponent = () => {
const ref = useRef()
useEffect(() => {
console.log("internal plyr instance:", ref.current.plyr)
})
return <Plyr ref={ref} />
}
// Class base component
class MyComponent extends Component {
constructor(props) {
super(props)
this.player = createRef()
}
componentDidMount() {
console.log("internal plyr instance", this.player.current.plyr)
}
render() {
return <Plyr ref={(player) => (this.player.current = player)} />
}
}
Currently the exported APIs contains a latest instance of plyr.
In other words, the passing ref will have access to the player in the structure shown below.
return <Plyr ref={ref} />
// ref can get access to latest plyr instance with `ref.current.plyr`
ref = { current: { plyr } }
// so you can make your player fullscreen 🎉
ref.current.plyr.fullscreen.enter()
You can fork these examples
Basic HLS integration Codesandbox
Check out the examples directory for the useHls integration guide.
<video
ref={usePlyr(ref, {
...useHls(hlsSource, options),
source,
})}
className="plyr-react plyr"
/>
Demo: https://react-fpmwns.stackblitz.io
We are open to all new contribution, feel free to
read CONTRIBUTING
and CODE OF CONDUCT section, make new issue to
discuss about the problem
, and improve/fix/enhance the source code with your PRs. There is a ready to code Gitpod, you
can jump into it
from
If you like the project and want to support my work, give star ⭐ or fork it.
FAQs
A simple HTML5, YouTube and Vimeo player for react using plyr
The npm package plyr-react receives a total of 15,456 weekly downloads. As such, plyr-react popularity was classified as popular.
We found that plyr-react 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.
Research
Malicious npm packages posing as Telegram bot libraries install SSH backdoors and exfiltrate data from Linux developer machines.
Security News
pip, PDM, pip-audit, and the packaging library are already adding support for Python’s new lock file format.
Product
Socket's Go support is now generally available, bringing automatic scanning and deep code analysis to all users with Go projects.