JavaScript Stream

Open-source JavaScript projects categorized as Stream

Top 23 JavaScript Stream Projects

  • node-fetch

    A light-weight module that brings the Fetch API to Node.js

    Project mention: Turn CV to structured data with GPT-3 and Node.js | dev.to | 2023-01-24

    node-fetch - NodeFetch is used to fetch the CV document.

  • StreamSaver.js

    StreamSaver writes stream to the filesystem directly asynchronous

    Project mention: UnCloud project: WebRTC chat, file transfer, and remote observation | reddit.com/r/WebRTC | 2022-12-18

    Yuck, that sounds annoying. I'm on Linux and generally use Firefox, so I haven't run into that yet. I'm using https://github.com/jimmywarting/StreamSaver.js for saving data to disk, and it seems that a similar issue may be present for that project as well.

  • Appwrite

    Appwrite - The Open Source Firebase alternative introduces iOS support . Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!

  • html5_rtsp_player

    Play RTSP stream from IP camera in browser in this HTML5 player without plugins

    Project mention: Playing rtsp stream without backend ? | reddit.com/r/learnjavascript | 2022-11-13

    One option https://github.com/Streamedian/html5_rtsp_player.

  • form-data

    A module to create readable `"multipart/form-data"` streams. Can be used to submit forms and file uploads to other web applications.

    Project mention: Run API tests with Newman and send reports to Telegram | dev.to | 2022-11-06

    The next request turned out to be a little more difficult to implement because it had to send a report.html file inside it, which first needed to be converted using the encoding type multipart form-data. Therefore to create readable "multipart/form-data" streams, I needed to use the Form-Data library. In order to install it locally, used the following command:

  • kefir

    A Reactive Programming library for JavaScript

  • Aedes

    Barebone MQTT broker that can run on any stream server, the node way

    Project mention: mqtt as a module | reddit.com/r/Nestjs_framework | 2022-04-11

    yes, we did it as well. We are using the aedes broker, wrapped inside its own module/service. Here you can find the broker lib https://github.com/moscajs/aedes

  • download

    Download and extract files (by kevva)

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • Shinobi

    :peace_symbol: :palestinian_territories: Shinobi CE - The Free Open Source CCTV platform written in Node.JS (Camera Recorder - Security Surveillance Software - Restreamer

    Project mention: What is the best Free preferably open source NVR? | reddit.com/r/homelab | 2023-01-29
  • homebridge-camera-ui

    Homebridge plugin for RTSP Cameras with HSV, motion detection support, Image Rekognition, Web UI to manage/watch streams and WebApp support

    Project mention: Indoor cameras that connect with HomePod and iCloud? | reddit.com/r/HomePod | 2022-12-29

    You can use virtually any IP camera you want thanks to HomeBridge. I am currently using a Yi cam that I hacked then I’m using HomeBridge and camera-ui.ip plug-in for it. Not the most straightforward, but the cheapest, and setting up HomeBridge unlocks so many possibilities with smart wifi things that are not HomeKit native.

  • magnet-player

    :movie_camera: A place for streaming torrents directly from your browser

    Project mention: Search and Stream torrent in your terminal | reddit.com/r/commandline | 2022-04-14
  • mac-local-rtmp-server

    Local RTMP Streaming Server

    Project mention: Am i able to pull in an RTMP stream as a source for OBS? | reddit.com/r/VIDEOENGINEERING | 2022-06-05

    https://github.com/sallar/mac-local-rtmp-server (this one is for MacOS, I know this work, there are alternatives for Windows but I don't know of any simple ones)

  • TwitchNoSub

    An extension to show sub only VOD on Twitch

    Project mention: Twitch has remembered that Twitch Turbo is a thing and has now begun promoting it again | reddit.com/r/LivestreamFail | 2022-10-26

    Unsub and use TwitchAdSolutions for no ads and TwitchNoSub to watch sub only VODs

  • multistream

    A stream that emits multiple other streams one after another (streams3)

  • gnome-shell-extension-cast-to-tv

    Cast files to Chromecast, web browser or media player app over local network.

  • into-stream

    Convert a string/promise/array/iterable/asynciterable/buffer/typedarray/arraybuffer/object into a stream

  • sec-api

    sec.gov EDGAR API | search & filter SEC filings | over 150 form types supported | 10-Q, 10-K, 8, 4, 13, S-11, ... | insider trading

    Project mention: When a company releases their quarterly earnings report, where is the first place it is published online? | reddit.com/r/Daytrading | 2022-04-14

    Using this API: https://sec-api.io/ , you could get and act on new report numbers faster than any human could.

  • TikTok-Chat-Reader

    Website to display chats and gifts in realtime from your TikTok LIVE stream. Demo project for TikTok-Live-Connector library.

    Project mention: How to connect the comments to the words of the game? | reddit.com/r/Tiktokhelp | 2022-04-12

    ​ ​ !< !< ​ !< Level: 1 Score: 0 Attempts: 0 ​ ​ Submit Reset Chats ​ !< ​ >! !< >!!< ​ ​ script.js const userGuess = document.getElementById("user-guess"); const submitBtn = document.getElementById("submit"); const usersWord = document.getElementById("scrambled-word"); const info = document.getElementById("info"); const levelOutput = document.getElementById("level"); const scoreOutput = document.getElementById("score"); const attemptsOutput = document.getElementById("attempts"); const gameContainer = document.getElementById("game-container"); const guessContainer = document.getElementById("guess-container"); const resetBtn = document.getElementById("reset-btn"); ​ ​ ​ let level = 1; let score = 0; let word; let attempts = 0; let correct = 0; ​ const lvlOneWords = [ >! "test"!< ]; ​ const lvlTwoWords = [ >! "test"!< ]; ​ const lvlThreeWords = [ >! "test"!< ]; ​ const lvlFourWords = [ >! "test"!< ]; ​ const lvlFiveWords = [ >! "test"!< ]; ​ const lvlSixWords = [ >! "test"!< ]; ​ const lvlSevenWords = [ >! "test"!< ]; ​ const lvlEightWords = [ >! "test"!< ]; ​ function reset() { >! level = 1;!< >! score = 0;!< >! correct = 0;!< >! attempts = 0;!< >! word = "";!< >! updateBoard();!< >! info.innerHTML = "";!< >! userGuess.value = "";!< } ​ function randomWord(lvl) { >! word = lvl[Math.floor(Math.random() * lvl.length + 1) - 1];!< >! return word;!< } ​ function scrambleWord(word) { >! let letters = word.split("");!< >! let currentIndex = letters.length,!< temporaryValue, randomIndex; ​ >! // While there remain elements to shuffle...!< >! while (0 !== currentIndex) {!< // Pick a remaining element... randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; ​ // And swap it with the current element. temporaryValue = letters[currentIndex]; letters[currentIndex] = letters[randomIndex]; letters[randomIndex] = temporaryValue; >! }!< ​ >! return letters.join(" ");!< } function updateBoard() { >! scoreOutput.innerHTML = score;!< >! levelOutput.innerHTML = level;!< >! attemptsOutput.innerHTML = attempts;!< } ​ function checkAnswer(guess) { >! console.log(`Correct: ${correct}`);!< >! if (correct == 3) {!< level += 1; correct = 0; >! }!< ​ >! if (attempts == 3) {!< guessContainer.classList.toggle("hidden"); info.innerHTML = "Sorry. You are out of chances. Retry ";!< reset(); >! }!< ​ >! if (guess === word) {!< info.innerHTML = "aCORRECT";!< score += 1; correct += 1; attempts = 0; setLevel(); >! } else {!< info.innerHTML = "Bzzzt! That's not right!";!< score -= 1; attempts += 1; >! }!< ​ >! updateBoard();!< } ​ function setLevel() { >! if (level == 1) {!< randomWord(lvlOneWords); >! } else if (level == 2) {!< randomWord(lvlTwoWords); >! } else if (level == 3) {!< randomWord(lvlThreeWords); >! } else if (level == 4) {!< randomWord(lvlFourWords); >! } else if (level == 5) {!< randomWord(lvlFiveWords); >! } else if (level == 6) {!< randomWord(lvlSixWords); >! } else if (level == 7) {!< randomWord(lvlSevenWords); >! } else if (level == 8) {!< randomWord(lvlEightWords); >! } else if (level == 9) {!< info.innerHTML = "You Win! Great job! You can reset or keep playing.";!< >! }!< ​ >! console.log(`Word: ${word}`);!< >! usersWord.innerHTML = scrambleWord(word);!< } ​ ​ ​ submitBtn.addEventListener("click", function(e) { >! checkAnswer(userGuess.value.toLowerCase());!< >! userGuess.value = "";!< }); ​ ​ ///////// ​ ///// ​ ​ window.addEventListener( >! "keypress",!< >! function(e) {!< if (e.keyCode == 13) { checkAnswer(userGuess.value.toLowerCase()); userGuess.value = ""; } >! },!< >! false!< ); ​ resetBtn.addEventListener("click", function(e) { >! reset();!< >! setLevel();!< >! guessContainer.classList.remove("hidden");!< >! userGuess.value = "";!< }); ​ setLevel(); ​ style.css /* http://meyerweb.com/eric/tools/css/reset/ >! v2.0 | 20110126!< >! License: none (public domain)!< */ /* line 6, ../sass/partials/_normalize.scss */ html1, body1, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { >! margin: 0;!< >! padding: 0;!< >! border: 0;!< >! font-size: 100%;!< >! font: inherit;!< >! vertical-align: baseline;!< } ​ /* HTML5 display-role reset for older browsers */ /* line 27, ../sass/partials/_normalize.scss */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { >! display: block;!< } ​ /* line 31, ../sass/partials/_normalize.scss */ body { >! line-height: 1;!< } ​ /* line 34, ../sass/partials/_normalize.scss */ ol, ul { >! list-style: none;!< } ​ /* line 37, ../sass/partials/_normalize.scss */ blockquote, q { >! quotes: none;!< } ​ /* line 40, ../sass/partials/_normalize.scss */ blockquote:before, blockquote:after, q:before, q:after { >! content: "";!< >! content: none;!< } ​ /* line 45, ../sass/partials/_normalize.scss */ table { >! border-collapse: collapse;!< >! border-spacing: 0;!< } ​ /* line 5, ../sass/styles.scss */ html, body { >! font-size: 16px;!< >! width: 50%;!< >! font-family: "Quicksand", sans-serif;!< >! overflow-x: hidden;!< >! overflow-y: hidden;!< } ​ /* line 13, ../sass/styles.scss */ nav { >! border-bottom: #e18a07 2px solid;!< >! width: 100%;!< >! padding: 0.625em;!< >! display: block;!< >! height: 2em;!< } ​ /* line 20, ../sass/styles.scss */ h1 { >! font-size: 2em;!< >! display: inline-block;!< >! float: left;!< >! padding-left: 1em;!< } ​ /* line 26, ../sass/styles.scss */ #contact { >! font-size: 2em;!< >! display: inline-block;!< >! float: right;!< >! padding-right: 1em;!< } ​ /* line 32, ../sass/styles.scss */ #contact a { >! color: #000;!< } ​ /* line 35, ../sass/styles.scss */ #contact i:hover { >! color: #e18a07;!< >! cursor: pointer;!< } ​ /* line 40, ../sass/styles.scss */ #rules { >! position: absolute;!< >! z-index: 999;!< >! width: 31.25em;!< >! height: 31.25em;!< >! text-align: center;!< >! left: 50%;!< >! margin-left: -200px;!< >! top: 50%;!< >! margin-top: -200px;!< } ​ /* line 51, ../sass/styles.scss */ #rules p { >! margin-bottom: 1.25em;!< } ​ /* line 55, ../sass/styles.scss */ #game-container { >! text-align: center;!< >! margin: 2em auto;!< >! width: 100vh;!< >! height: 80vh;!< } ​ /* line 62, ../sass/styles.scss */ #game-container p { >! display: inline-block;!< >! margin-right: 1em;!< >! margin-bottom: 3em;!< >! font-weight: 500;!< >! font-size: 1.5em;!< } ​ /* line 69, ../sass/styles.scss */ #game-container p span { >! font-weight: 300;!< } ​ /* line 72, ../sass/styles.scss */ #game-container p#info { >! display: block;!< >! text-align: center;!< >! font-size: 2em !important;!< >! height: 2em;!< >! margin-bottom: 1em;!< } ​ /* line 80, ../sass/styles.scss */ #scrambled-word { >! font-size: 3em !important;!< >! font-family: "Anton", sans-serif;!< >! text-transform: uppercase;!< >! display: block;!< >! margin-left: 48px;!< >! margin-bottom: 1em !important;!< } ​ /* line 89, ../sass/styles.scss */ #scrambled-word p { >! display: block;!< >! width: 100%;!< } ​ /* line 94, ../sass/styles.scss */ #user-guess { >! display: block;!< >! width: 20em;!< >! height: 3em;!< >! padding-left: 1em;!< >! margin: 0 auto 1.25em;!< >! border: 1px solid #000;!< >! outline-color: #e18a07;!< >! font-size: 1.1em;!< } ​ /* line 104, ../sass/styles.scss */ small { >! font-size: 0.8em;!< } ​ /* line 107, ../sass/styles.scss */ .lead { >! font-size: 1.2em;!< >! font-weight: 700;!< } ​ /* line 111, ../sass/styles.scss */ .correct, .incorrect { >! font-size: 1.5em;!< >! font-weight: 700;!< } ​ /* line 116, ../sass/styles.scss */ .correct { >! color: green;!< >! display: block;!< } ​ /* line 121, ../sass/styles.scss */ .incorrect { >! color: red;!< >! display: block;!< } ​ /* line 126, ../sass/styles.scss */ .hidden { >! visibility: hidden;!< } ​ /* line 129, ../sass/styles.scss */ button { >! cursor: pointer;!< >! width: 12em;!< >! height: 3em;!< >! outline: none;!< >! text-transform: uppercase;!< >! font-weight: 400;!< >! font-size: 1.1em;!< } ​ /* line 138, ../sass/styles.scss */ #submit { >! background: #fff;!< >! border: 2px solid #e18a07;!< } ​ /* line 143, ../sass/styles.scss */ #submit:hover { >! background: #e18a07;!< >! color: #fff;!< >! transition: 0.2s background;!< } ​ ​ /* line 138, ../sass/styles.scss */ ​ ​ /* line 150, ../sass/styles.scss */ #reset-btn { >! background: #fff;!< >! border: none;!< >! box-shadow: 1px 1px 1px #999;!< } ​ /* line 155, ../sass/styles.scss */ #reset-btn:hover { >! box-shadow: 1px 1px 1px #000;!< >! transition: 0.2s box-shadow;!< } ​ /* line 161, ../sass/styles.scss */ button:active { >! position: relative;!< >! top: 1px;!< } ​ /* line 166, ../sass/styles.scss */ #copyright { >! text-align: center;!< } ​ https://github.com/zerodytrash/TikTok-Chat-Reader API to retrieve chat comments

  • activity

    :zap: Activity app for Nextcloud

  • MMM-RTSPStream

    MagicMirror² module for streaming an RTSP video stream from a security camera to your MagicMirror.

    Project mention: Switching between services | reddit.com/r/raspberry_pi | 2022-03-23
  • cpsfy

    🚀 Tiny goodies for Continuation-Passing-Style functions, fully tested

  • gulp-execa

    Gulp.js command execution for humans

  • textics

    📉 JavaScript Text Statistics that counts lines, words, chars, and spaces.

  • streamdelay

    A delay + dump button for live streams, allowing screening and redaction of explict content.

    Project mention: Afraid To Do A Live Call-in Show | reddit.com/r/streaming | 2022-12-18
  • Sonar

    Write Clean JavaScript Code. Always.. Sonar helps you commit clean code every time. With over 300 unique rules to find JavaScript bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-01-29.

JavaScript Stream related posts

Index

What are some of the best open-source Stream projects in JavaScript? This list will help you:

Project Stars
1 node-fetch 8,120
2 StreamSaver.js 3,299
3 html5_rtsp_player 2,213
4 form-data 2,132
5 kefir 1,822
6 Aedes 1,543
7 download 1,222
8 Shinobi 1,182
9 homebridge-camera-ui 475
10 magnet-player 446
11 mac-local-rtmp-server 444
12 TwitchNoSub 350
13 multistream 275
14 gnome-shell-extension-cast-to-tv 267
15 into-stream 195
16 sec-api 149
17 TikTok-Chat-Reader 109
18 activity 97
19 MMM-RTSPStream 65
20 cpsfy 64
21 gulp-execa 55
22 textics 36
23 streamdelay 36
Write Clean JavaScript Code. Always.
Sonar helps you commit clean code every time. With over 300 unique rules to find JavaScript bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.
www.sonarsource.com