2015-10-19 ========== In order to support future clustering support, the legacy `/sioconfig` endpoint is being deprecated. Instead, you should make a request to `/socketconfig/.json`. The response will look similar to these: ```json {"url":"https://some-website.com:8443","secure":true} {"error":"Channel \"!@#$\" does not exist."} ``` The `url` key specifies the socket.io URL to connect to, and the `secure` key indicates whether the connection is secured with TLS. If an `error` key is present, something went wrong and the value will contain an error message. For now, only one URL is returned, however in the future this may be extended by adding an `alt` key specifying an array of acceptable URLs to connect to. 2015-10-04 ========== * 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 setting `channel-storage: type: 'database'` in your `config.yaml`. - In order to migrate existing channel data from the `chandump` files to the database, run `node lib/channel-storage/migrate.js`. * 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 running ```sql ALTER TABLE `channels` ENGINE = InnoDB; ``` 2015-09-21 ========== * CyTube is now transpiled with [babel] to allow the use of ES6/ES2015 features. All source files have been moved from `lib` to `src`. * Running `npm install` or `npm run postinstall` will prompt you to build from `src` to `lib`. * Running `npm run build-server` will run the build script without any prompts. * After updating with `git pull`, you should run `npm install` or `npm run build-server` in order to rebuild after the changes. [babel]: https://babeljs.io/ 2015-07-25 ========== * 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. 2015-07-07 ========== * 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 as `undefined`, and removes the need for manually looking up status messages in `lib/ffmpeg.js`. 2015-07-06 ========== * 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` or `npm update` to update the mediaquery dependency. * `www/js/player.js` is now built from the CoffeeScript source files in the `player/` directory. Instead of modifying it directly, modify the relevant player implementations in `player/` and run `npm run build-player` (or `node build-player.js`) to generate `www/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 the `id` 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.