{"id":28673320,"url":"https://github.com/jplayer/react-jplaylist","last_synced_at":"2025-10-10T15:14:36.588Z","repository":{"id":136979717,"uuid":"92731741","full_name":"jplayer/react-jPlaylist","owner":"jplayer","description":"Html5 audio and video playlist library for React that implements react-jPlayer","archived":false,"fork":false,"pushed_at":"2018-03-31T19:59:30.000Z","size":449,"stargazers_count":13,"open_issues_count":2,"forks_count":9,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-09-29T19:27:48.796Z","etag":null,"topics":["audio","audio-player","html","html5","html5-audio","javascript","jplayer","playlist","react","react-jplayer","redux","video","video-player"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jplayer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-29T11:01:24.000Z","updated_at":"2024-02-03T05:37:57.000Z","dependencies_parsed_at":"2023-03-22T12:17:13.460Z","dependency_job_id":null,"html_url":"https://github.com/jplayer/react-jPlaylist","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/jplayer/react-jPlaylist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplayer%2Freact-jPlaylist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplayer%2Freact-jPlaylist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplayer%2Freact-jPlaylist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplayer%2Freact-jPlaylist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jplayer","download_url":"https://codeload.github.com/jplayer/react-jPlaylist/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplayer%2Freact-jPlaylist/sbom","scorecard":{"id":535783,"data":{"date":"2025-08-11","repo":{"name":"github.com/jplayer/react-jPlaylist","commit":"cb821aa1f7612eb008b2e3ddc5707f51a23afeb6"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"158 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-whgm-jr23-g3j9","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-cwfw-4gq5-mrqx","Warn: Project is vulnerable to: GHSA-g95f-p29q-9xw4","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-x9w5-v3q2-3rhw","Warn: Project is vulnerable to: GHSA-c6rq-rjc2-86v2","Warn: Project is vulnerable to: GHSA-257v-vj4p-3w2h","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-rq8g-5pc5-wrhr","Warn: Project is vulnerable to: GHSA-p28h-cc7q-c4fg","Warn: Project is vulnerable to: GHSA-9vvw-cc9w-f27h","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-hr2v-3952-633q","Warn: Project is vulnerable to: GHSA-h6ch-v84p-w6p9","Warn: Project is vulnerable to: GHSA-3wcq-x3mq-6r9p","Warn: Project is vulnerable to: GHSA-ff7x-qrg7-qggm","Warn: Project is vulnerable to: GHSA-vh7m-p724-62c2","Warn: Project is vulnerable to: GHSA-r9p9-mrjm-926w","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-4gmj-3p3h-gm8h","Warn: Project is vulnerable to: GHSA-6h5x-7c5m-7cr7","Warn: Project is vulnerable to: GHSA-rv95-896h-c2vc","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-qrmc-fj45-qfc2","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-8r6j-v8pm-fqw3","Warn: Project is vulnerable to: MAL-2023-462","Warn: Project is vulnerable to: GHSA-xf7w-r453-m56c","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-qh2h-chj9-jffq","Warn: Project is vulnerable to: GHSA-q42p-pg8m-cqh6","Warn: Project is vulnerable to: GHSA-w457-6q6x-cgp9","Warn: Project is vulnerable to: GHSA-62gr-4qp9-h98f","Warn: Project is vulnerable to: GHSA-f52g-6jhx-586p","Warn: Project is vulnerable to: GHSA-2cf5-4w76-r9qv","Warn: Project is vulnerable to: GHSA-3cqr-58rm-57f8","Warn: Project is vulnerable to: GHSA-g9r4-xpmj-mj65","Warn: Project is vulnerable to: GHSA-q2c6-c6pm-g3gh","Warn: Project is vulnerable to: GHSA-765h-qjxv-5f44","Warn: Project is vulnerable to: GHSA-f2jv-r9rf-7988","Warn: Project is vulnerable to: GHSA-44pw-h2cw-w3vq","Warn: Project is vulnerable to: GHSA-jp4x-w63m-7wgm","Warn: Project is vulnerable to: GHSA-c429-5p7v-vgjp","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-6x33-pw7p-hmpq","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-4hpf-3wq7-5rpr","Warn: Project is vulnerable to: GHSA-f522-ffg8-j8r6","Warn: Project is vulnerable to: GHSA-7r28-3m3f-r2pr","Warn: Project is vulnerable to: GHSA-r8j5-h5cx-65gg","Warn: Project is vulnerable to: GHSA-2pr6-76vf-7546","Warn: Project is vulnerable to: GHSA-8j8c-7jfh-h6hx","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-282f-qqgm-c34q","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-fvqr-27wr-82fm","Warn: Project is vulnerable to: GHSA-4xc9-xhrj-v574","Warn: Project is vulnerable to: GHSA-x5rq-j2xg-h7qm","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-2m96-9w4j-wgv7","Warn: Project is vulnerable to: GHSA-h726-x36v-rx45","Warn: Project is vulnerable to: GHSA-pp57-mqmh-44h7","Warn: Project is vulnerable to: GHSA-4xcv-9jjx-gfj3","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-3mpr-hq3p-49h9","Warn: Project is vulnerable to: GHSA-fhjf-83wg-r2j9","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-92xj-mqp7-vmcj","Warn: Project is vulnerable to: GHSA-wxgw-qj99-44c2","Warn: Project is vulnerable to: GHSA-5rrq-pxf6-6jx5","Warn: Project is vulnerable to: GHSA-8fr3-hfg3-gpgp","Warn: Project is vulnerable to: GHSA-gf8q-jrpm-jvxq","Warn: Project is vulnerable to: GHSA-2r2c-g63r-vccr","Warn: Project is vulnerable to: GHSA-cfm4-qjh2-4765","Warn: Project is vulnerable to: GHSA-x4jg-mjrx-434g","Warn: Project is vulnerable to: GHSA-ph34-pc88-72gc","Warn: Project is vulnerable to: GHSA-m6cx-g6qm-p2cx","Warn: Project is vulnerable to: GHSA-x8qc-rrcw-4r46","Warn: Project is vulnerable to: GHSA-4328-8hgf-7wjr","Warn: Project is vulnerable to: GHSA-93f3-23rq-pjfp","Warn: Project is vulnerable to: GHSA-pw54-mh39-w3hc","Warn: Project is vulnerable to: GHSA-xgh6-85xh-479p","Warn: Project is vulnerable to: GHSA-rp65-9cf3-cjxr","Warn: Project is vulnerable to: GHSA-6394-6h9h-cfjg","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-566m-qj78-rww5","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-hxcm-v35h-mg2x","Warn: Project is vulnerable to: GHSA-6g33-f262-xjp4","Warn: Project is vulnerable to: GHSA-36m4-6v6m-4vpr","Warn: Project is vulnerable to: GHSA-q22g-8fr4-qpj4","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-jv35-xqg7-f92r","Warn: Project is vulnerable to: GHSA-c9g6-9335-x697","Warn: Project is vulnerable to: GHSA-2m39-62fm-q8r3","Warn: Project is vulnerable to: GHSA-mf6x-7mm4-x2g7","Warn: Project is vulnerable to: GHSA-j44m-qm6p-hp7m","Warn: Project is vulnerable to: GHSA-3jfq-g458-7qm9","Warn: Project is vulnerable to: GHSA-5955-9wpr-37jh","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-7p7h-4mm5-852v","Warn: Project is vulnerable to: GHSA-xc7v-wxcw-j472","Warn: Project is vulnerable to: GHSA-662x-fhqg-9p8v","Warn: Project is vulnerable to: GHSA-394c-5j6w-4xmx","Warn: Project is vulnerable to: GHSA-78cj-fxph-m83p","Warn: Project is vulnerable to: GHSA-fhg7-m89q-25r3","Warn: Project is vulnerable to: GHSA-cf4h-3jhx-xvhq","Warn: Project is vulnerable to: GHSA-v2p6-4mp7-3r9v","Warn: Project is vulnerable to: GHSA-pv4c-p2j5-38j4","Warn: Project is vulnerable to: GHSA-46c4-8wrp-j99v","Warn: Project is vulnerable to: GHSA-9m6j-fcg5-2442","Warn: Project is vulnerable to: GHSA-hh27-ffr2-f2jc","Warn: Project is vulnerable to: GHSA-rqff-837h-mm52","Warn: Project is vulnerable to: GHSA-8v38-pw62-9cw2","Warn: Project is vulnerable to: GHSA-hgjh-723h-mx2j","Warn: Project is vulnerable to: GHSA-jf5r-8hm2-f872","Warn: Project is vulnerable to: GHSA-wr3j-pwj9-hqq6","Warn: Project is vulnerable to: GHSA-cf66-xwfp-gvc4","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-g78m-2chm-r7qv","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T06:55:20.967Z","repository_id":136979717,"created_at":"2025-08-20T06:55:20.967Z","updated_at":"2025-08-20T06:55:20.967Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004575,"owners_count":26083735,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","audio-player","html","html5","html5-audio","javascript","jplayer","playlist","react","react-jplayer","redux","video","video-player"],"created_at":"2025-06-13T20:10:00.215Z","updated_at":"2025-10-10T15:14:36.567Z","avatar_url":"https://github.com/jplayer.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/jplayer/react-jPlaylist.svg?branch=master)](https://travis-ci.org/jplayer/react-jPlaylist)\n[![Coverage Status](https://coveralls.io/repos/github/jplayer/react-jPlaylist/badge.svg?branch=master)](https://coveralls.io/github/jplayer/react-jPlaylist?branch=master)\n[![dependencies Status](https://david-dm.org/martindawson/react-jPlaylist/status.svg)](https://david-dm.org/jPlayer/react-jPlaylist)\n[![devDependencies Status](https://david-dm.org/martindawson/react-jPlaylist/dev-status.svg)](https://david-dm.org/jPlayer/react-jPlaylist?type=dev)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n# react-jPlaylist\nreact-jPlaylist is an add-on to [react-jPlayer](https://github.com/jplayer/react-jPlayer) that provides playlist functionality and components for you to use.\n\n\u003c!-- toc --\u003e\n\n  * [Examples](#examples)\n  * [Installation](#installation)\n    + [NPM](#npm)\n    + [UMD](#umd)\n  * [Features](#features)\n  * [Supported Browsers](#supported-browsers)\n- [Documentation](#documentation)\n    + [`initializeOptions(jPlayerOptions, jPlaylistOptions)` : Required](#initializeoptionsjplayeroptions-jplaylistoptions--required)\n    + [`reducer()` : Required](#reducer--required)\n    + [Actions](#actions)\n      - [`setOption(id, key, value)`](#setoptionid-key-value)\n      - [`setPlaylist(id, playlist)`](#setplaylistid-playlist)\n      - [`add(id, media, playNow?)`](#addid-media-playnow)\n      - [`remove(id, index)`](#removeid-index)\n      - [`clear(id)`](#clearid)\n      - [`play(id, index?)`](#playid-index)\n      - [`shuffle(id, shuffled?, playNow?)`](#shuffleid-shuffled-playnow)\n      - [`next(id)`](#nextid)\n      - [`previous(id)`](#previousid)\n    + [Options](#options)\n      - [`playlist` (array: objects) : Required](#playlist-array-objects--required)\n      - [`loopOnPrevious` (bool)](#looponprevious-bool)\n      - [`shuffleOnLoop` (bool)](#shuffleonloop-bool)\n      - [`loop` (string)](#loop-string)\n      - [`hidePlaylist` (bool)](#hideplaylist-bool)\n  * [Components](#components)\n    + [`JPlaylist` : Required](#jplaylist--required)\n    + [`Playlist`](#playlist)\n    + [`Remove`](#remove)\n    + [`MediaLink`](#medialink)\n    + [`Title`](#title)\n    + [`Poster`](#poster)\n    + [`TogglePlaylist`](#toggleplaylist)\n    + [`Previous`](#previous)\n    + [`Next`](#next)\n    + [`Shuffle`](#shuffle)\n    + [`Repeat`](#repeat)\n\n\u003c!-- tocstop --\u003e\n\n### Examples\nhttps://github.com/jplayer/react-jPlayer-examples\n\n### Installation\n#### NPM\n`npm install --save react-jplaylist`\n\n#### UMD\nThe recommended way to use this package is through npm and webpack. However if you insist on including the .js and .css files manually then both the unminified and minified versions are available from the `/dist/` folder. The dependencies of this package have been excluded for the UMD build so you will need to include them manually as shown in the react-jPlayer-example's [UMDPlaylist](https://github.com/jplayer/react-jPlayer-examples/tree/master/jPlaylists/UMDPlaylist).\n\nThis module is exported to a variable called `ReactJPlaylist`.\n\n### Features\n* Cross compatible with many legacy different Html5 browsers\n* Back, Forward, Shuffle, Playlist Selection, Playlist Looping\n* Fully customizable, modular and componentized\n* Comes with a fully reponsive css skin for your players\n\n### Supported Browsers\nSame as [react-jPlayer](https://github.com/jplayer/react-jPlayer#supported-browsers)\n\n## Documentation\n#### `initializeOptions(jPlayerOptions, jPlaylistOptions)` : Required\nUsed for setting up the default options for your jPlaylist. Deep merges the options that you pass in with react-jPlayer's and react-jPlaylist's default options. The result of this is used as the initial state for your jPlaylist.\n\n**Arguments**\n1. `jPlayerOptions` (object): The [jPlayer options](https://github.com/jplayer/react-jPlayer#options) to specify for your jPlaylist.\n2. `jPlaylistOptions` (object): The [jPlaylist options](https://github.com/jplayer/react-jPlaylist#options) to specify for your jPlaylist.\n\n#### `reducer()` : Required\nThe jPlaylist reducer that will be called whenever a jPlaylist function is dispatched. Must be passed to your store with the key named 'jPlaylists'.\n\n#### Actions\nAll of the actions need to be dispatched using Reduxes `dispatch` function as you normally do with actions.\n\n##### `setOption(id, key, value)`\nSets any jPlaylist [option](https://github.com/jplayer/react-jPlaylist#options).\n\n**Arguments**\n1. `id` (string): Id of the jPlaylist to apply this to.\n2. `key` (string): The name of the option that you want to set. Specifying nested keys is not supported.\n3. `value` (any): The value to set the option to.\n\n##### `setPlaylist(id, playlist)`\nSets the playlist of the jPlaylist. You don't need to use this on jPlaylist load because this method is automatically called internally on `componentDidMount` with the playlist you supplied in [options.playlist](https://github.com/jplayer/react-jPlaylist#options).\n\n**Arguments**\n1. `id` (string): Id of the jPlaylist to apply this to.\n2. `playlist` (array: objects): The new playlist which will be set to your jPlaylist.\n\n##### `add(id, media, playNow?)`\nAdds the media to the end of the playlist.\n\n**Arguments**\n1. `id` (string): Id of the jPlaylist to apply this to.\n2. [`media` (object):](https://github.com/jplayer/react-jPlayer#media-object) The media to be added to your playlist.\n3. `playNow` (bool): Optionally play the media as soon as it's added.\n\n##### `remove(id, index)`\nRemoves the media from the playlist at the specified index.\n\n**Arguments**\n1. `id` (string): Id of the jPlaylist to apply this to.\n2. `index` (number): The index of the playlist array with which to remove.\n\n##### `clear(id)`\nClears the playlist array and resets some jPlaylist values back to default.\n\n**Arguments**\n1. `id` (string): Id of the jPlaylist to apply this to.\n\n##### `play(id, index?)`\nPlays the jPlaylist. If no index is supplied then it plays the current media.\n\n**Arguments**\n1. `id` (string): Id of the jPlaylist to apply this to.\n2. `index` (number): Optionally play the media at the supplied index.\n\n##### `shuffle(id, shuffled?, playNow?)`\nShuffles the playlist. \n\n**Arguments**\n1. `id` (string): Id of the jPlaylist to apply this to.\n2. `shuffled` (bool): Toggles shuffled setting if no param is given. True always shuffles the playlist. False will un-shuffle if it was shuffled.\n3. `playNow` (bool): Optionally play the media as soon as it's shuffled.\n\n##### `next(id)`\nPlays the next media item in the playlist.\n\n**Arguments**\n1. `id` (string): Id of the jPlaylist to apply this to.\n\n##### `previous(id)`\nPlays the previous media item in the playlist.\n\n**Arguments**\n1. `id` (string): Id of the jPlaylist to apply this to.\n\n#### Options\nProperties in this object are used to initialize the jPlaylist. They are deep merged with the default jPlaylist options.\n\n##### `playlist` (array: objects) : Required\njPlaylist will load the playlist from this option on load automatically. Each object within the array should be the same as react-jPlayer's [media schema](https://github.com/jplayer/react-jPlayer#media-object) but also must include an id that can be a string or a number.\n\nE.g.\n\nmedia: {\n  {\n    id: 0,\n    // react jPlayer media options here...\n  }\n}\n\n`id` needs to be a number or a string.\n\n##### `loopOnPrevious` (bool)\nDefault: true\n\nThe playlist will loop back to the end when calling [`previous()`](https://github.com/jplayer/react-jPlaylist#previousid).\n\n##### `shuffleOnLoop` (bool)\nDefault: true\n\nIf loop is 'loop-playlist' and shuffled is true, the playlist will shuffle when calling [`next()`](https://github.com/jplayer/react-jPlaylist#nextid) on the last item.\n\n##### `loop` (string)\nDefault: \"loop-playlist\"\n\nThere are three settings which jPlaylist recognizes for loop:\n1. 'off': Doesn't loop the playlist or the current media, stops on the last item when [`next()`](https://github.com/jplayer/react-jPlaylist#nextid) is called.\n2. 'loop': Loops the current media in the playlist.\n3. 'loop-playlist': Loops the entire playlist when calling [`next()`](https://github.com/jplayer/react-jPlaylist#nextid) on the last item.\n\n##### `hidePlaylist` (bool)\nDefault: false\n\nHides or shows the playlist. Used internally with the [`TogglePlaylist`](https://github.com/jplayer/react-jPlaylist#toggleplaylist) component.\n\n### Components\n#### `JPlaylist` : Required\n**props**\n1. `children` (element) : Required: Must be the [JPlayer](https://github.com/jplayer/react-jPlayer#jplayer) component.\n2. `id` (string) : Required: Must be the same as the one you supplied to the [jPlayer options](https://github.com/jplayer/react-jPlayer#id-string--required).\n3. `keyBindings` (object): Specifies the keyBindings to be applied when that key is pressed. Deep merges these props with the jPlaylist's default keyBindings.\nSee [react-jPlayer's keyBindings](https://github.com/jplayer/react-jPlayer#jplayer) for more information.\n\nDefault:\n```\nkeyBindings: {\n  next: {\n    key: 221, // ]\n    fn: () =\u003e dispatch(next(id)),\n  },\n  previous: {\n    key: 219, // [\n    fn: () =\u003e dispatch(previous(id)),\n  },\n  shuffle: {\n    key: 83, // s\n    fn: () =\u003e dispatch(shuffle(id, undefined, true)),\n  },\n  loop: {\n    key: 76, // l\n    fn: () =\u003e {\n      const loop = getLoopState(stateProps.loop);\n\n      dispatch(setOption(id, 'loop', loop));\n    },\n  },\n}\n```\n\nThis component needs to wrap the [JPlayer component](https://github.com/jplayer/react-jPlayer#jplayer)\n\n#### `Playlist`\n**props**\n1. `children` (node) : Required\n\nAny component that is a child of this component will be duplicated x number of times where x is the size of your playlist.\n\n#### `Remove`\n**props**\n1. `children` (node) : Required\n\nDefault: `×`\n\nShould be nested as a child of the [`Playlist`](https://github.com/jplayer/react-jPlaylist#playlist) component. Renders the remove controls for each media in your playlist.\n\n#### `MediaLink`\n**props**\n1. `children` (node) : Required\n\nShould be nested as a child of the [`Playlist`](https://github.com/jplayer/react-jPlaylist#playlist) component. Renders the media links for the playlist and allows the user to select other media's in your playlist.\n\n#### `Title`\nDefault: `media.artist` - `media.title`\n\nShould be nested as a child of the [`Playlist`](https://github.com/jplayer/react-jPlaylist#playlist) component. Renders the artist and title of the current media.\n\n#### `Poster`\nShould be nested as a child of the [`Playlist`](https://github.com/jplayer/react-jPlaylist#playlist) component. Renders the poster of the current media.\n\n#### `TogglePlaylist`\n**props**\n1. `children` (node) : Required\n\nUsed in conjunction with the [`hidePlaylist`](https://github.com/jplayer/react-jPlaylist#hideplaylist-bool) property. Toggles the visiblity of the playlist `onClick`.\n\n#### `Previous`\n**props**\n1. `children` (node) : Required\n\n`onClick` calls the [`previous`](https://github.com/jplayer/react-jPlaylist#previousid) action internally and sets the media to the previous item.\n\n#### `Next`\n**props**\n1. `children` (node) : Required\n\n`onClick` calls the [`next`](https://github.com/jplayer/react-jPlaylist#nextid) action internally and sets the media to the next item.\n\n#### `Shuffle`\n**props**\n1. `children` (node) : Required\n\n`onClick` calls the [`shuffle`](https://github.com/jplayer/react-jPlaylist#shuffleid-shuffled-playnow) action internally and shuffles the media.\n\n#### `Repeat`\n**props**\n1. `children` (node) : Required\n\n`onClick` calls the [`setOption`](https://github.com/jplayer/react-jPlaylist#setoptionid-key-value) action internally and sets the loop to the next state, i.e. if loop is currently 'off\" then clicking on this component will set the loop state to 'loop'.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjplayer%2Freact-jplaylist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjplayer%2Freact-jplaylist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjplayer%2Freact-jplaylist/lists"}