MCPcopy Index your code
hub / github.com/GoogleChrome/kino

github.com/GoogleChrome/kino @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
241 symbols 462 edges 46 files 115 documented · 48%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Please note: This app is being developed. There may be bugs, and everything is subject to change.

Kino

This is a sample Video on demand (VOD) app to demonstrate media functionality in the context of a Progressive Web App (PWA).

Running the site locally

Start by creating a new project from the Firebase Console and then set up the Firebase CLI with NPM.

Important: This project uses a local Firebase emulator, which mean you need to install the Firebase CLI globally.

npm install -g firebase-tools

Clone this repository:

git clone git@github.com:GoogleChrome/kino.git

Go to the project folder:

cd kino

Login to Firebase:

firebase login

Initialize Firebase:

firebase init hosting

Answer questions as follows:

? What do you want to use as your public directory? public
? Configure as a single-page app (rewrite all urls to /index.html)? Yes
? Set up automatic builds and deploys with GitHub? No
? File public/index.html already exists. Overwrite? No

Install the dependencies:

npm install

Build the assets:

npm run build

Note: This project uses Rollup to build the JavaScript assets. No transpilation is currently being done, the tooling exists mainly to resolve ES Modules in the Service Worker.

You can also have Rollup watch for changes in the /src directory and rebuild them on the fly.

Watch and build the assets:

npm run watch

Finally, start the Firebase emulator:

npm start

The videos are not included in the repo, but rather are served from a Google Cloud Storage bucket. They are served with CORS headers, meaning that you will need to run the local copy of the server at port 5000.

Core symbols most depended-on inside this repo

get
called by 15
src/js/classes/VideoDownloaderRegistry.js
add
called by 15
src/js/classes/Streamer.js
put
called by 6
src/js/classes/IDBConnection.js
route
called by 6
src/js/classes/Router.js
loadSetting
called by 5
src/js/utils/settings.js
dispatchDataChangedEvent
called by 5
src/js/classes/IDBConnection.js
pause
called by 5
src/js/classes/DownloadManager.js
broadcast
called by 5
src/js/classes/ConnectionStatus.js

Shape

Method 144
Function 65
Class 32

Languages

TypeScript100%

Modules by API surface

src/js/web-components/video-download/VideoDownloader.js30 symbols
src/js/classes/Streamer.js24 symbols
src/js/web-components/video-player/VideoPlayer.js20 symbols
src/js/classes/IDBConnection.js16 symbols
src/js/classes/ParserMPD.js15 symbols
src/js/classes/DownloadManager.js15 symbols
src/js/pages/Video.js11 symbols
src/js/classes/ConnectionStatus.js10 symbols
src/js/web-components/toggle-button/ToggleButton.js9 symbols
src/js/sw/sw.js8 symbols
src/js/classes/VideoDownloaderRegistry.js8 symbols
src/js/classes/Router.js8 symbols

For agents

$ claude mcp add kino \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact