{"id":15653731,"url":"https://github.com/itzmeanjan/streamz","last_synced_at":"2025-04-30T21:48:41.458Z","repository":{"id":106438543,"uuid":"201322720","full_name":"itzmeanjan/streamZ","owner":"itzmeanjan","description":"A simple video streaming application made with Dart, JavaScript, HTML, CSS \u0026 :heart:","archived":false,"fork":false,"pushed_at":"2019-11-18T10:15:03.000Z","size":24801,"stargazers_count":28,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-25T11:39:51.898Z","etag":null,"topics":["dart","html5","html5-video","javascript","localstre","streaming-service","systemd","video-streaming","video-streaming-application","webm-video"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itzmeanjan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2019-08-08T19:18:51.000Z","updated_at":"2024-07-03T14:50:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"84dcb300-caed-4fae-b2e1-175331067921","html_url":"https://github.com/itzmeanjan/streamZ","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzmeanjan%2FstreamZ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzmeanjan%2FstreamZ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzmeanjan%2FstreamZ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzmeanjan%2FstreamZ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itzmeanjan","download_url":"https://codeload.github.com/itzmeanjan/streamZ/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242711209,"owners_count":20173288,"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":["dart","html5","html5-video","javascript","localstre","streaming-service","systemd","video-streaming","video-streaming-application","webm-video"],"created_at":"2024-10-03T12:46:46.751Z","updated_at":"2025-03-09T15:31:05.159Z","avatar_url":"https://github.com/itzmeanjan.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# streamZ\nA simple video streaming application made with _Dart_, _JS_, _HTML_, _CSS_ \u0026 :heart: \n\nShow some :heart: by putting :star:\n\n_Recently I wrote an article, explaining how to deploy it using systemd in LAN, which can be found [here](http://itzmeanjan.in/blog/post_1)._\n\n## what does it do ?\n- A streaming service, intended to run in small network(s) _( may be in your home network )_, which lets you stream movies to any device present in that network \u0026 having a standard browser installed _( yeah HTML5 support required )_\n- Backend, fully written in _Dart_, leveraging power of _dart:io_ \u0026 _dart:isolate_\n- Frontend, powered by _HTML_, _CSS_ \u0026 last but not least _Javascript_ _( yeah not using any UI framework )_\n- Audio-Video playing is done using HTML5 **\\\u003cvideo\u003e** element, which can play _mp4_ \u0026 _webm_ video(s) generally\n## how can I use it ?\n- If you're on _Linux_, then I've already compiled **streamZ** into an executable binary _( using dart2native compiler )_, which can be simply run on any Linux Machine, cause that executable binary is one self-sufficient one _( but not yet platform-agnostic, which will change is near future )_.\n- Then download [_this_](https://github.com/itzmeanjan/streamZ/releases/download/v1.0.1/streamZ.zip) compressed file, and unzip it into a suitable location on your machine.\n- You'll get a directory tree like below\n```shell script\n$ wget https://github.com/itzmeanjan/streamZ/releases/download/v1.0.1/streamZ.zip # consider downloading zip, using wget from terminal\n$ cd\n$ unzip streamZ.zip # unzipping it\n$ cd streamZ # getting into actual directory\n$ tree -h\n.\n├── [4.0K]  final\n│   └── [7.8M]  streamZ\n└── [4.0K]  frontend\n    ├── [4.0K]  images\n    │   └── [ 318]  favicon.ico\n    ├── [4.0K]  pages\n    │   └── [1.0K]  index.html\n    ├── [4.0K]  scripts\n    │   └── [9.7K]  index.js\n    └── [4.0K]  styles\n        └── [2.0K]  index.css\n\n6 directories, 5 files\n```\n- Now get into `./final` directory \u0026 run executable binary, which will start a media streaming server on _http://0.0.0.0:8000_\n```shell script\n$ cd final\n$ ./streamZ # running movie steaming server\n[+]streamZ_v1.0.0 listening ( streamZ0 ) ...\n\n[+]streamZ_v1.0.0 listening ( streamZ1 ) ...\n\n```\n- To check, open browser from same machine \u0026 type _http://localhost:8000_ into address bar, you'll get a list of all movies present under _~/Videos/_ directory, which is default video storing directory on _Linux_ running machines.\n- You can also access this streaming service by opening _http://x.x.x.x:8000/_,on any device's browser, present in LAN\n- Where `x.x.x.x` is nothing but Local IP Address of machine, running **streamZ**\n---\n- If you want to dig deeper, simply fork this repo \u0026 clone it in you machine\n- Make sure you've installed _Dart SDK_ \u0026 you're on _*nix_ platform\n- Because I gonna use _systemd.service_ to keep this streaming service alive in background, always, even after system restarts it'll auto start itself\n- You need to make sure, you've _~/Videos/_ directory present on your system, cause we'll read from that directory _( every 30 minutes )_, to ensure all _mp4_ \u0026 _webm_ videos, present in aforementioned directory, are listed in movie playlist\n- If you're having a lot of traffic, consider using multiple Isolates to handle traffic efficiently. Just update `int count = 2;` on line 100 of `./bin/main.dart` to whatever value you intend to use, that many Isolate(s) will be created on boot, they'll distributedly handle whole traffic coming in.\n- I've also written one systemd unit file, which can be used for deploying **streamZ**, so that it'll keep running always _( autostart after failure \u0026 system boot )_\n- Consider using so, by modifying this systemd unit [file](./systemd/streamZ.service)\n## how does it look like ?\n![screenCapture_1](screencaptures/screenCapture_1.png)\n\n![screenCapture_2](screencaptures/screenCapture_2.png)\n\n![screenCapture_3](screencaptures/screenCapture_3.png)\n\n**Feel free to check source code to dig deeper _( it's pretty well documented )_**\n\nHope it helps ... :wink:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitzmeanjan%2Fstreamz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitzmeanjan%2Fstreamz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitzmeanjan%2Fstreamz/lists"}