This release updates socket.io to version 1.4.0. The updates to socket.io
include a few security-related fixes, so please be sure to run npm install
to ensure the updated version is installed before restarting your CyTube server.
- https://nodesecurity.io/advisories/67
- https://github.com/socketio/engine.io/commit/391ce0dc8b88a6609d88db83ea064040a05ab803
In order to support future clustering support, the legacy /sioconfig
endpoint is being deprecated. Instead, you should make a request to
/socketconfig/<channel name>.json
. See the
documentation for more information.
-
The channel data storage system has been refactored a bit. For compatibility, the default remains to store JSON objects for each channel in the
chandump
folder, however there is now also the option of storing channel data in the database. You can take advantage of this by settingchannel-storage: type: 'database'
in yourconfig.yaml
.- In order to migrate existing channel data from the
chandump
files to the database, runnode lib/channel-storage/migrate.js
.
- In order to migrate existing channel data from the
-
The database storage method uses foreign keys to associate the channel data with the corresponding row in the
channels
table. This requires that the tables be stored using the InnoDB engine rather than MyISAM. If your CyTube tables defaulted to MyISAM, you can fix them by runningALTER TABLE `channels` ENGINE = InnoDB;
- CyTube is now transpiled with babel to allow the use of ES6/ES2015
features. All source files have been moved from
lib
tosrc
. - Running
npm install
ornpm run postinstall
will prompt you to build fromsrc
tolib
. - Running
npm run build-server
will run the build script without any prompts. - After updating with
git pull
, you should runnpm install
ornpm run build-server
in order to rebuild after the changes.
- CyTube now supports subtitles for Google Drive videos. In order to take
advantage of this, you must upgrade mediaquery by running
npm install cytube/mediaquery
. Subtitles are cached in the google-drive-subtitles folder.
- CyTube and CyTube/mediaquery have both been updated to use
calzoneman/status-message-polyfill to polyfill res.statusMessage on older
versions of node (e.g., v0.10). After pulling, run
npm install
to update this dependency. This fixes an issue where HTTP status messages from mediaquery were reported asundefined
, and removes the need for manually looking up status messages inlib/ffmpeg.js
.
-
As part of the video player rewrite, Google Drive and Google+ metadata lookups are now offloaded to CyTube/mediaquery. After pulling the new changes, run
npm install
ornpm update
to update the mediaquery dependency. -
www/js/player.js
is now built from the CoffeeScript source files in theplayer/
directory. Instead of modifying it directly, modify the relevant player implementations inplayer/
and runnpm run build-player
(ornode build-player.js
) to generatewww/js/player.js
. -
Also as part of the video player rewrite, the schema for custom embeds changed so any custom embeds stored in the
channel_libraries
table need to be updated. The automatic upgrade script will convert any custom embeds that are parseable (i.e., not truncated by the width of theid
field using the old format) and will delete the rest (you may see a lot of WARNING: unable to convert xxx messages-- this is normal). Custom embeds in channel playlists in the chandumps will be converted when the channel is loaded.