{"id":13670955,"url":"https://github.com/jwplayer/jwplayer","last_synced_at":"2025-05-14T19:09:28.281Z","repository":{"id":15571752,"uuid":"18307175","full_name":"jwplayer/jwplayer","owner":"jwplayer","description":"JW Player is the world's most popular embeddable media player.","archived":false,"fork":false,"pushed_at":"2024-11-11T13:50:25.000Z","size":92820,"stargazers_count":2551,"open_issues_count":74,"forks_count":986,"subscribers_count":183,"default_branch":"master","last_synced_at":"2025-05-13T13:13:14.343Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://developer.jwplayer.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jwplayer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-03-31T20:34:20.000Z","updated_at":"2025-05-12T11:40:21.000Z","dependencies_parsed_at":"2025-04-13T13:26:58.021Z","dependency_job_id":"284d2878-434f-4ee3-9193-fcb186e6102c","html_url":"https://github.com/jwplayer/jwplayer","commit_stats":{"total_commits":7495,"total_committers":112,"mean_commits":66.91964285714286,"dds":0.7770513675783856,"last_synced_commit":"c280de15ff78927c026010e4e7a83054e4638240"},"previous_names":[],"tags_count":389,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwplayer%2Fjwplayer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwplayer%2Fjwplayer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwplayer%2Fjwplayer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwplayer%2Fjwplayer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jwplayer","download_url":"https://codeload.github.com/jwplayer/jwplayer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254209859,"owners_count":22032897,"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","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":[],"created_at":"2024-08-02T09:00:54.267Z","updated_at":"2025-05-14T19:09:24.631Z","avatar_url":"https://github.com/jwplayer.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","HarmonyOS","General Tools","Table of Contents"],"sub_categories":["Windows Manager","Comparative Analysis of Codecs","Video Libraries"],"readme":"# \u003cimg height=\"70px\" src=\"assets/logo.svg\" alt=\"JW Player Logo\" title=\"JW Player Logo\"/\u003e\r\n\r\n\u003e Plays everywhere, every time.\r\n\r\nLive on over 2 million sites with 1.3 billion unique plays per month, JW Player is the solution for seamless video playback across browsers and media types. It empowers the developer to interact with video programmatically to create unique and awesome user experiences.\r\n  \r\n## Disclaimer\r\nThis is the non-commercial version of JW Player. It does not contain the same features as the commercial-use player available from [jwplayer.com](https://www.jwplayer.com/). Commercial use and access to features requires a license. Learn more at https://www.jwplayer.com/pricing/. If you are a paid customer and want a player, please download it from the \"Downloads\" section of your JW Dashboard.\r\n  \r\n## Official Documentation\r\n- [Developer Portal](https://developer.jwplayer.com/)\r\n- [API Reference](https://developer.jwplayer.com/jw-player/docs/developer-guide/api/javascript_api_reference/) \r\n- [Configuration Reference](https://developer.jwplayer.com/jw-player/docs/developer-guide/customization/configuration-reference/)\r\n- [Demos](https://developer.jwplayer.com/jw-player/demos/)\r\n- [Support](http://support.jwplayer.com/)\r\n\r\n## A Simple Example\r\n\r\nThe example below will render a video player into the div with the `player` id, listens to an event, and makes a few calls using the API.\r\n\r\n````html\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml\u003e\r\n\u003chead\u003e\r\n    \u003cscript src='LINK_TO_YOUR_PLAYER'\u003e\u003c/script\u003e\r\n    \u003cscript\u003ejwplayer.key='YOUR_KEY';\u003c/script\u003e\r\n\u003c/head\u003e\r\n\u003cbody\u003e\r\n    \u003cdiv id=\"player\"\u003eLoading the player...\u003c/div\u003e\r\n    \u003cscript\u003e\r\n        // Setup the player\r\n        const player = jwplayer('player').setup({\r\n            file: 'LINK_TO_YOUR_FILE.mp4'\r\n        });\r\n\r\n        // Listen to an event\r\n        player.on('pause', (event) =\u003e {\r\n            alert('Why did my user pause their video instead of watching it?');\r\n        });\r\n\r\n        // Call the API\r\n        const bumpIt = () =\u003e {\r\n            const vol = player.getVolume();\r\n            player.setVolume(vol + 10);\r\n        }\r\n        bumpIt();\r\n    \u003c/script\u003e\r\n\u003c/body\u003e\r\n\u003c/html\u003e\r\n````\r\n\r\n## Contributing\r\n\r\nWe appreciate all contributions towards the player! Before submitting an issue or PR, please see our contributing docs [here](CONTRIBUTING.md).\r\n\r\n## Building the Player\r\n\r\nWe use `grunt` and a few `npm scripts` to build the player, lint code, and run tests. Debug code is built to `/bin-debug`, while minified \u0026 uglified code is built to `/bin-release`. Code is built with `webpack`, linted with `eslint`, and tested with `karma`, `mocha` and `chai`.\r\n\r\n#### Requirements:\r\n\r\n- [Node.js](http://nodejs.org/download/) with npm\r\n- Install global npm dependencies\r\n`npm install -g eslint grunt-cli jsdoc karma-cli stylelint webpack webpack-cli`\r\n\r\n#### Steps:\r\n\r\n1. Fork the project, clone your fork, and set up the remotes:\r\n````bash\r\n# Clone your fork of the repo into the current directory\r\ngit clone https://github.com/\u003cyour-username\u003e/jwplayer\r\n# Navigate to the newly cloned directory\r\ncd jwplayer\r\n# Assign the original repo to a remote called \"upstream\"\r\ngit remote add upstream https://github.com/jwplayer/jwplayer\r\n````\r\n\r\n2. Install the dependencies:\r\n````bash\r\n# Install dependencies\r\nnpm install -g eslint grunt-cli jsdoc karma-cli stylelint webpack webpack-cli\r\nnpm install\r\n# Optionally, install webpack-dev-server\r\nnpm install -g webpack-dev-server\r\n````\r\n \r\n3. Build the player:\r\n````bash\r\n# Build once\r\ngrunt\r\n# Complete Watch - builds JS, lints, and tests on each change\r\ngrunt serve\r\n# Quick JS Watch - build only. Requires webpack-dev-server to be installed globally\r\nwebpack-dev-server -w --env.debug --port 8888 --output-public-path /bin-debug/\r\n# Open the test page from another terminal window\r\nopen http://localhost:8888/test/manual/\r\n````\r\n \r\n4. Test your code:\r\n````bash\r\n# All browsers\r\ngrunt test\r\n# Individual browsers - chrome, firefox, safari\r\ngrunt karma:{BROWSER} e.g. grunt karma:chrome\r\n````\r\n \r\n5. Lint your code:\r\n````bash\r\nnpm run lint\r\n````\r\n\r\n6. Setup git pre-push hook\r\nThis will add a `pre-push` script to the project's .git/hooks folder that will lint and run unit tests on the branch before any push.\r\n````bash\r\ngrunt hooks\r\n```` \r\n\r\n## Framework Integration\r\n\r\nThe JW team officially maintains and supports framework integration for React.\r\n\r\n| Framework | Link |\r\n| --------- | ---- |\r\n| React |  https://github.com/jwplayer/jwplayer-react |\r\n\r\nIf you have a library which you believe is good enough to meet the needs of other developers using a certain framework, please open a pull request modifying the above table.\r\n\r\n## Software License\r\n\r\nThe use of this library is governed by a [Creative Commons license](http://creativecommons.org/licenses/by-nc-sa/3.0/). You can use, modify, copy, and distribute this edition as long as it’s for non-commercial use, you provide attribution, and share under a similar license.\r\nhttp://www.jwplayer.com/license/\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwplayer%2Fjwplayer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjwplayer%2Fjwplayer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwplayer%2Fjwplayer/lists"}