{"id":18633720,"url":"https://github.com/scylladb/video-streaming","last_synced_at":"2025-04-11T07:32:34.112Z","repository":{"id":199322504,"uuid":"701360815","full_name":"scylladb/video-streaming","owner":"scylladb","description":"Video streaming sample app with NextJs + ScyllaDB","archived":false,"fork":false,"pushed_at":"2024-04-24T16:31:00.000Z","size":434,"stargazers_count":17,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-25T17:24:17.386Z","etag":null,"topics":["blitzjs","javascript","material-ui","nextjs","nosql","scylla","scylladb","video-streaming"],"latest_commit_sha":null,"homepage":"https://video-streaming.scylladb.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scylladb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-10-06T13:31:02.000Z","updated_at":"2024-04-25T17:24:17.387Z","dependencies_parsed_at":null,"dependency_job_id":"94a67318-f8d1-45e3-8bae-30a4eefa6f1e","html_url":"https://github.com/scylladb/video-streaming","commit_stats":null,"previous_names":["zseta/video-streaming","scylladb/video-streaming"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2Fvideo-streaming","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2Fvideo-streaming/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2Fvideo-streaming/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2Fvideo-streaming/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scylladb","download_url":"https://codeload.github.com/scylladb/video-streaming/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223460571,"owners_count":17148760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blitzjs","javascript","material-ui","nextjs","nosql","scylla","scylladb","video-streaming"],"created_at":"2024-11-07T05:16:03.031Z","updated_at":"2024-11-07T05:16:03.496Z","avatar_url":"https://github.com/scylladb.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Video streaming - Next.js + ScyllaDB application\nThis repository contains a sample video streaming application built with [Blitz.js](https://blitzjs.com/), [Material-UI](https://mui.com/material-ui/) and [ScyllaDB](https://www.scylladb.com/).\n\n## Prerequisites\n* [NodeJS](https://nodejs.org/en)\n* [ScyllaDB Cloud account](https://cloud.scylladb.com/account/sign-up)\n\n## Get started\n\n**Clone the repository**\n```\ngit clone https://github.com/scylladb/video-streaming\n```\n\n### Configuration file\n\nCreate a new configuration file named `.env.local` in the project's root folder. This file contains your ScyllaDB cluster credentials:\n```\n# .env.local\nAPP_BASE_URL=\"http://localhost:8000\"\nSCYLLA_HOSTS=\"node-0.aws_eu_central_1.xxxxx.clusters.scylla.cloud\"\nSCYLLA_USER=\"scylla\"\nSCYLLA_PASSWD=\"xxxxx\"\nSCYLLA_KEYSPACE=\"streaming\"\nSCYLLA_DATACENTER=\"AWS_EU_CENTRAL_1\"\n```\n\nYou can copy the `SCYLLA_HOSTS`, `SCYLLA_USER`, `SCYLLA_PASSWD` and `SCYLLA_DATACENTER` values from your ScyllaDB Cloud dashboard. Keyspace should be `streaming`.\n\n### Install project requirements\n```\nnpm install\n```\n\n### Create database schema and tables\nRun the following command to migrate the database and load sample data.\n```\nnpm run migrate\n```\n\nThis creates the following structure in your database:\n```\nCREATE KEYSPACE IF NOT EXISTS streaming WITH replication = { 'class': 'NetworkTopologyStrategy', 'replication_factor': '3' };\n\nCREATE TABLE streaming.video (\n    id TEXT,\n    content_type TEXT,\n    title TEXT,\n    url TEXT,\n    thumbnail TEXT,\n    created_at TIMESTAMP,\n    PRIMARY KEY (id, created_at)\n);\n\nCREATE TABLE streaming.watch_history (\n\tuser_id UUID,\n\tvideo_id TEXT,\n\tprogress INT,\n\twatched_at TIMESTAMP,\n\tPRIMARY KEY (user_id, video_id)\n);\n```\n\n**Start the app:**\n```\nnpm run dev\n\u003e video-streaming@1.0.0 dev\n\u003e blitz dev\n\n✔ Next.js was successfully patched with a React Suspense fix\n✔ Routes manifest was successfully generated\n- ready started server on 0.0.0.0:3000, url: http://localhost:3000\n```\n\nGo to http://localhost:3000 to open the app.\n\n![app screenshot](/public/app_screen.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscylladb%2Fvideo-streaming","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscylladb%2Fvideo-streaming","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscylladb%2Fvideo-streaming/lists"}