All Projects → nrkno → sofie-core

nrkno / sofie-core

Licence: MIT License
Sofie: The Modern TV News Studio Automation System (Server Core)

Programming Languages

typescript
32286 projects
SCSS
7915 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Less
1899 projects
PureBasic
71 projects

Projects that are alternatives of or similar to sofie-core

UitzendingGemist
An *Unofficial* Uitzending Gemist application for Apple TV 4 (**deprecated, use TV Gemist ☝🏻**)
Stars: ✭ 48 (-31.43%)
Mutual labels:  tv, television, broadcast
streaming-pt
Live TV 📺 and Radio 📻 shell scripts from Portugal 🇵🇹.
Stars: ✭ 52 (-25.71%)
Mutual labels:  tv, live, television
Sofie Tv Automation
This is the documentation for the state-based studio automation system Sofie, used in live TV news production by the Norwegian public service broadcaster NRK since September 2018.
Stars: ✭ 155 (+121.43%)
Mutual labels:  tv, live, broadcast
TVGemist
An *Unofficial* Uitzending Gemist application for  TV
Stars: ✭ 23 (-67.14%)
Mutual labels:  tv, broadcast
Tgtv
用swift3.1编写的直播APP,运用protobuf
Stars: ✭ 145 (+107.14%)
Mutual labels:  tv, live
Tv
全球直播流聚合
Stars: ✭ 192 (+174.29%)
Mutual labels:  tv, live
Media Server Go Demo
webrtc media server go demo
Stars: ✭ 140 (+100%)
Mutual labels:  live, broadcast
ebu-tt-live-toolkit
Toolkit for supporting the EBU-TT Live specification
Stars: ✭ 23 (-67.14%)
Mutual labels:  live, broadcast
homebridge-vieramatic
Homebridge plugin for Panasonic™ Viera™ TVs (includes support for 2018 and later models)
Stars: ✭ 39 (-44.29%)
Mutual labels:  tv, television
bigscreen-player
Simplified media playback for bigscreen devices
Stars: ✭ 62 (-11.43%)
Mutual labels:  tv, live
twilio-live-interactive-video
An interactive live video app built with Twilio Live and Twilio Video
Stars: ✭ 23 (-67.14%)
Mutual labels:  live, broadcast
Kingtv
📺 高仿全民直播(全民TV),项目采用 MVP + RXJava + Retrofit + OKHttp + Material Design + Dagger2 + Base + Glide + GreenDao构建。因为全民TV已经凉了,导致App已经连不上。所以本项目已暂停维护。仅供学习。 推荐MVPFrame: https://github.com/jenly1314/MVPFrame 和你值得拥有的MVVMFrame快速开发框架: https://github.com/jenly1314/MVVMFrame
Stars: ✭ 1,594 (+2177.14%)
Mutual labels:  tv, live
BlueSkyTv
简单的安卓TV 超纯净
Stars: ✭ 17 (-75.71%)
Mutual labels:  tv, live
Topnews
一款Android新闻客户端,并提供电视台直播功能
Stars: ✭ 44 (-37.14%)
Mutual labels:  news, live
Iptv
Android project for live streaming IPTV
Stars: ✭ 120 (+71.43%)
Mutual labels:  tv, live
obplayer
📻 OBPlayer Streaming Automation Playout with CAP EAS Alerting
Stars: ✭ 93 (+32.86%)
Mutual labels:  tv, live
nebula
Media asset management and broadcast automation system
Stars: ✭ 103 (+47.14%)
Mutual labels:  television, broadcast
Pyinstalive
Python script to download Instagram livestreams and replays.
Stars: ✭ 336 (+380%)
Mutual labels:  live, broadcast
comfy-channel
A 24/7 live video broadcast with automatic content selection and overlays using FFMPEG and Python!
Stars: ✭ 37 (-47.14%)
Mutual labels:  tv, live
iptvx
IPTV player and streamer for Linux that allows to play any stream that LibVLC can play, offers an overlay based on WebKit using HTML5, JavaScript and CSS and uses XMLTV data for EPG information. It allows the playback of URLs, files and can grab URLs from shell scripts. XMLTV EPG data can be downloaded from URLs or grabbed from shell scripts.
Stars: ✭ 65 (-7.14%)
Mutual labels:  tv, television

Sofie: The Modern TV News Studio Automation System (Sofie Core)

This is the "Core" application of the Sofie TV News Studio Automation System.

The Core is a Meteor/Node.JS-based web server that serves the web-GUIs as well as handling the business logic for the Sofie TV Automation system.

System documentation can be found here: Sofie system documentation.

For developers

Gettings started, local development

Follow these instructions to start up Sofie Core in development mode. (For production deploys, see System documentation.)

Prerequisites

  • Install Node.js 12 or 14 (using nvm or nvm-windows is the recommended way to install Node.js)
  • If on Windows: npm install --global windows-build-tools
  • Install Meteor (npm install --global meteor)
  • Install Yarn (npm install --global corepack && corepack enable)

Quick-start:

git clone -b master https://github.com/nrkno/sofie-core.git
cd sofie-core
yarn start

💡 First startup may take a while, especially on Windows. To speed things up, consider adding %LOCALAPPDATA%\.meteor and the directory where you cloned server-core to your Windows Defender virus protection exclusions.

Slightly more detailed start:

  1. Clone the repository (for development, it is recommended to base your work on the latest unstable release branch)

    git clone -b releaseXYZ https://github.com/nrkno/sofie-core.git
  2. Go into the cloned directory

    cd sofie-core
  3. Setup meteor and dependencies. (Before this, make sure your NODE_ENV environment variable is NOT set to "production"!)

    yarn install
  4. Start development mode

    yarn dev
  5. In another window, start the playout-gateway. You will need to manually restart this upon making changes

    cd sofie-core/packages/playout-gateway
    yarn buildstart

If you make any changes to the libraries inside packages, you will need to run the typescript compiler in another terminal.

cd sofie-core/packages
yarn watch # or yarn build to build just once

If you run into any issues while installing the dependencies, clone any offending packages from Git and link them using npm link. For example, for tv-automation-mos-connection library:

git clone -b master https://github.com/nrkno/tv-automation-mos-connection.git
cd tv-automation-mos-connection
npm run build
npm link
cd ../sofie-core/meteor
npm link mos-connection

When using the Visual Studio Code IDE

We provide a settings.json.default file in .vscode that you should consider using with your IDE. Also consider installing suggested extensions, which should help you create PRs consistent with project's code standards.

Dealing with strange errors

If you get any strange errors (such as the application crashing, "Unable to resolve some modules" or errors during installation of dependencies), the last resort is to reset and restart:

yarn reset # Removes all installed dependencies and build artifacts
yarn start # Set up, install and run in dev mode

Translating Sofie, add a new language

For support of various languages in the GUI, Sofie uses the i18next framework. It uses JSON-based translation files to store UI strings. In order to build a new translation file, first extract a PO template file from Sofie UI source code:

cd meteor
npm run i18n-extract-pot

Find the created template.pot file in meteor/i18n folder. Create a new PO file based on that template using a PO editor of your choice. Save it in the meteor/i18n folder using your ISO 639-1 language code of choice as the filename.

Next, modify the package.json scripts and create a new language compilations script:

"i18n-compile-json": "npm run i18n-compile-json-nb & npm run i18n-compile-json-sv & npm run i18n-compile-json-xx",
"i18n-compile-json-xx": "i18next-conv -l nb -s i18n/xx.po -t public/locales/xx/translations.json",

Then, run the compilation script:

npm run i18n-compile-json

The resulting JSON file will be placed in meteor/public/locales/xx, where it will be available to the Sofie UI for use and auto-detection.

Then submit this as a PR.

Version numbering scheme

This project does not follow semver. We believe that semver does not make sense for this system as there are so many moving parts that a majority of releases could be considered breaking in some way.

Instead of semver, the Major number gets incremented whenever we feel like Sofie has evolved enough to warrant the change. The minor number gets incremented for each iteration of the development cycle, with the digit matching the cycle number. The patch number gets incremented for patch releases as expected.

The version numbers of the blueprints-integration and server-core-integration libraries are tied to this, and as such they also do not follow semver currently. In future these may be decoupled. The api of server-core-integration is pretty stable and rarely undergoes any breaking changes, so is ok to be mismatched. The api of blueprints-integration is rather volatile, and often has breaking changes. Because of this, we recommend matching the minor version of blueprints-integration with Sofie core. Sofie will warn if these do not match. We expect this to settle down in the future, and will review this decision when we feel it is worthwhile.

Additional information

Background image used for previewing graphical elements is based on "Sunset over dark forest" by Aliis Sinisalu: https://unsplash.com/photos/8NiAH5YRZPs used under the Unsplash License.


The NRK logo is a registered trademark of Norsk rikskringkasting AS. The license does not grant any right to use, in any way, any trademarks, service marks or logos of Norsk rikskringkasting AS.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].