Skip to content
Switch branches/tags

License badge Documentation badge Docker badge Support badge

Copyright © 2013-2016 Kurento. Licensed under Apache 2.0 License.

Kurento JavaScript Tutorial

Kurento Client JavaScript demos.

This project contains a set of simple applications built with JavaScript Kurento Client APIs (kurento-client-js and kurento-utils-js).

The source code of this project can be cloned from the GitHub repository.

Installation instructions

Be sure to have installed Node.js and Bower in your system:

curl -sL | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g bower

Each demo is located in a single folder (e.g. kurento-hello-world, kurento-magic-mirror, and so on). For example, to install the kurento-hello-world demo dependencies, run:

cd kurento-hello-world
bower install

An HTTP server is required for these demos. A very simple way of doing this is by means of a Node.js server. This server can be installed as follows:

sudo npm install -g http-server

Then, in each demo folder execute this command:

http-server -p 8443 -S -C keys/server.crt -K keys/server.key

Finally, open https://localhost:8443/ in your browser to access to the demo.

Take into account that one demo with Generators (kurento-hello-world-recorder-generator) require co, a generator based flow-control for Node.js and browser. In these demos, the experimental JavaScript support must be enabled. In Chrome, this can done in the flags configuration page:


After enabling this flag, you'll need to restart your browser.

Optional parameters

The demos accept some optional GET parameters given on the URL, you only need to add them to the query string in the same way you would add them to the Node.js executable on your command line:

All demos accept following parameters:

  • ws_uri: the WebSocket Kurento MediaServer endpoint. By default it connects to a Kurento MediaServer instance listening on the port 8433 on the same machine where it's being hosted the demo. The KMS must allow WSS (WebSocket Secure).

  • ice_servers: the TURN and STUN servers to use, formatted as a JSON string holding an array of RTCIceServer objects (the same structure used when configuring a PeerConnection object), or an empty array to disabled them (this is faster and more reliable when doing tests on a local machine or LAN network). By default it use some random servers from a pre-defined list.[{"urls":""},{"urls":""}][{"urls":"","username":"user","credential":"myPassword"}]

Other parameters specific to each demo can be found defined at the top of their index.js file.


What is Kurento

Kurento is an open source software project providing a platform suitable for creating modular applications with advanced real-time communication capabilities. For knowing more about Kurento, please visit the Kurento project website:

Kurento is part of FIWARE. For further information on the relationship of FIWARE and Kurento check the Kurento FIWARE Catalog Entry

Kurento is part of the NUBOMEDIA research initiative.


The Kurento project provides detailed documentation including tutorials, installation and development guides. A simplified version of the documentation can be found on The Open API specification a.k.a. Kurento Protocol is also available on


Code for other Kurento projects can be found in the GitHub Kurento Group.

News and Website

Check the Kurento blog Follow us on Twitter @kurentoms.

Issue tracker

Issues and bug reports should be posted to the GitHub Kurento bugtracker

Licensing and distribution

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Contribution policy

You can contribute to the Kurento community through bug-reports, bug-fixes, new code or new documentation. For contributing to the Kurento community, drop a post to the Kurento Public Mailing List providing full information about your contribution and its value. In your contributions, you must comply with the following guidelines

  • You must specify the specific contents of your contribution either through a detailed bug description, through a pull-request or through a patch.
  • You must specify the licensing restrictions of the code you contribute.
  • For newly created code to be incorporated in the Kurento code-base, you must accept Kurento to own the code copyright, so that its open source nature is guaranteed.
  • You must justify appropriately the need and value of your contribution. The Kurento project has no obligations in relation to accepting contributions from third parties.
  • The Kurento project leaders have the right of asking for further explanations, tests or validations of any code contributed to the community before it being incorporated into the Kurento code-base. You must be ready to addressing all these kind of concerns before having your code approved.


The Kurento project provides community support through the Kurento Public Mailing List and through StackOverflow using the tags kurento and fiware-kurento.

Before asking for support, please read first the Kurento Netiquette Guidelines