All Projects → jrudess → streamdvr

jrudess / streamdvr

Licence: GPL-3.0 license
DVR for streaming entertainment

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to streamdvr

Streamlink
Streamlink is a CLI utility which pipes video streams from various services into a video player
Stars: ✭ 6,883 (+13396.08%)
Mutual labels:  streamlink, twitch, streaming
Streamlink Twitch Gui
A multi platform Twitch.tv browser for Streamlink
Stars: ✭ 2,059 (+3937.25%)
Mutual labels:  streamlink, twitch, streaming
Awesome Developer Streams
👩🏿‍💻👨🏾‍💻👩🏼‍💻👨🏽‍💻👩🏻‍💻 Awesome Developers, Streaming
Stars: ✭ 6,860 (+13350.98%)
Mutual labels:  twitch, streaming
Badusb botnet
👥😈 Infect a pc with badusb and establish a connection through telegram.
Stars: ✭ 32 (-37.25%)
Mutual labels:  twitch, streaming
Twitchrecover
Twitch VOD tool which recovers all VODs including those that are sub only or deleted.
Stars: ✭ 123 (+141.18%)
Mutual labels:  twitch, streaming
OBS-ChatSpam
Python script for OBS Studio that posts messages in Twitch chat
Stars: ✭ 26 (-49.02%)
Mutual labels:  twitch, streaming
Volvox.Helios-old
Powerful, modular, web-managed, open-source Discord bot created by a community for communities.
Stars: ✭ 51 (+0%)
Mutual labels:  twitch, streaming
Mixer Mixitup
Streaming bot application for handling chat, events, moderation, and other streamer assistance features
Stars: ✭ 83 (+62.75%)
Mutual labels:  twitch, streaming
Songify
A simple tool that gets the current track from Spotify, YouTube and Nightbot.
Stars: ✭ 66 (+29.41%)
Mutual labels:  twitch, streaming
Streamlabs Obs
Free and open source streaming software built on OBS and Electron.
Stars: ✭ 3,473 (+6709.8%)
Mutual labels:  twitch, streaming
TwitchCompilationCreator
A fully automated system that transforms Twitch clips into gaming compilations
Stars: ✭ 172 (+237.25%)
Mutual labels:  streamlink, twitch
StreamLinkerino
Twitch.tv client using only StreamLink, MPV, and Chatterino
Stars: ✭ 26 (-49.02%)
Mutual labels:  streamlink, twitch
Firebot
A powerful all-in-one bot for Twitch streamers
Stars: ✭ 162 (+217.65%)
Mutual labels:  twitch, streaming
Multistreamer
[discontinued] A webapp for publishing video to multiple streaming services at once.
Stars: ✭ 281 (+450.98%)
Mutual labels:  twitch, streaming
own3dpro-obs-plugin
OWN3D Pro OBS Plugin
Stars: ✭ 25 (-50.98%)
Mutual labels:  twitch, streaming
Essentialnowplaying
A now playing tool intended to be used with OBS.
Stars: ✭ 40 (-21.57%)
Mutual labels:  twitch, streaming
desktop
Free and open source streaming software built on OBS and Electron.
Stars: ✭ 3,684 (+7123.53%)
Mutual labels:  twitch, streaming
twitchpipe
Pipe your favorite Twitch streams to the media player of your choice, or a file to save them for later. Supports low-latency playback.
Stars: ✭ 28 (-45.1%)
Mutual labels:  twitch, streaming
Vidgear
A High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing features 🔥
Stars: ✭ 2,048 (+3915.69%)
Mutual labels:  twitch, streaming
NativeTwitch
Native Twitch Player
Stars: ✭ 64 (+25.49%)
Mutual labels:  streamlink, twitch

StreamDVR

About

StreamDVR records your favorite live streamers while you are away. No need to miss a broadcast!

Time shifting is not a crime: https://en.wikipedia.org/wiki/Sony_Corp._of_America_v._Universal_City_Studios,_Inc.

  • Use either ffmpeg or streamlink to record to ts-containers

  • Automatically convert recordings to mp4 or mkv

  • Run custom post-process scripts after conversion to...

    • upload to cloud storage
    • generate thumbnail previews
    • do anything you want
  • Supported sites out of the box: Twitch, Youtube, Pixiv, Picarto

  • See Adding new plugins to use StreamDVR with other sites that are supported by youtube-dl or streamlink.

  • Docker available at https://ghcr.io/purrsevere/streamdvr

Setup

  • Dependencies: bash, node.js >= 14.0.0, npm, git, and ffmpeg

    • StreamDVR does not work in a windows command prompt. Use WSL to run StreamDVR in Windows.
  • Optional Dependencies: streamlink, youtube-dl

    • streamlink is used to fetch m3u8 URLs for Pixiv and Picarto by default
    • youtube-dl is used to fetch m3u8 URLs for Twitch and Youtube by default
  • Install StreamDVR

    On GitHub, click Clone or download, Download ZIP. Or run git clone https://github.com/jrudess/streamdvr.git

  • Run npm install to locally install all dependencies in package.json

Instructions

  • config files are loaded from the following paths (listed in precedence order):

    • $XDG_CONFIG_HOME/streamdvr/
    • $HOME/.config/streamdvr/
    • $cwd/config/
  • To run: streamdvr

  • Filename formatting:

    • %s Site Name
    • %n Streamer Name
    • %d Date and Time
  • TUI navigation:

    • 1 to focus the streamer list, Esc to unfocus
    • 2 to focus the site list, Esc to unfocus
    • enter to focus the input bar for CLI
    • Up/Down/PgUp/PgDn to scroll the active focus
  • CLI:

    add     [site] [streamer] <alias>
    addtemp [site] [streamer]
    pause   [site] <streamer> <time in seconds>
    remove  [site] [streamer]
    reload
    help
  • Streamer aliases

Some websites, such as youtube, will have channel names that are random characters. For example, the URL to capture NBC News live streams is https://www.youtube.com/channel/UCeY0bbntWzzVIaj2z3QigXg. An alias can be specified when adding the channel to give it a better name.

    add youtube UCeY0bbntWzzVIaj2z3QigXg nbc_news
  • Custom Post Processing is enabled in config.yml with postprocess: /path/to/script
    #!/bin/bash
    #arg0 is path, arg1 is filename
    args=("$@")
    notify-send "streamdvr" "Done recording ${args[1]}"
  • Adding new plugins

Every site that is supported by either streamlink or youtube-dl will work with StreamDVR. All that is necessary is to create a new configuration file with the site's details. Refer to any existing yml file in the config directory for an example.

If you have created a .yml for StreamDVR and would like to share it, please submit a pull request to include the new yml files in the repo.

All support for streaming sites is handled by 3rd party programs. The site configuration yml files specify the m3u8 lookup and record scripts to use. Adding support for new programs requires adding new wrapper scripts and using those scripts in the yml configuration file.

If you would like StreamDVR to support a new program and have written your own wrapper scripts, pull requests are welcome. If you're just aware of other programs similar to youtube-dl or streamlink, please open an issue and provide the program's name/info. If the program looks promising (e.g. works for at least one of the existing sites), then I'll probably add support for it.

  • Configuration Options for config.yml

    • enable
      • daemon Suppresses standard out messages
    • recording
      • autoConvertType mp4, mkv, ts (no conversion)
      • captureDirectory Temporary storage area while recording
      • completeDirectory Final area to store recordings
      • postprocess Script to use to convert ts to mp4/mkv
      • dateFormat Used for log output and filenames
      • includeSiteInDir This option only applies if streamerSubdir is set. Recordings are placed in completeDir/streamer_site. If siteSubdir is set then completeDir/site/streamer_site.
      • streamerSubdir Recordings are placed in completeDir/streamer/ If includeSiteInDir is set then completeDir/streamer_site/. If siteSubdir is set then completeDir/site/{streamer, streamer_site}.
      • siteSubdir Recordings are placed in completeDir/site/. If streamerSubdir is set then completeDir/site/streamer/.
      • keepTsFile This option leaves the ts file in captureDir after an mp4/mkv is converted. This is mostly a 'debug' option.
      • minSize Minimum size in megabytes for a recording. Recordings smaller than this size are automatically deleted.
      • maxSize Maximum size in megabytes for a recording. Recordings that are larger than this size are halted and converted, then restarted.
    • postprocess Path to custom post-processing script that is run after a recording has been converted to its final file format. Arguments to script: arg0=path arg1=filename
    • log
      • enable Store log output to streamdvr.log
      • append Append new output to the file when true. Overwrite new output to the file when false.
    • tui
      • enable Allow interactive control of streamdvr with a text interface
      • allowUnicode Disable use of any fancy unicode characters in TUI output
    • colors Allows customization of various colors used in logs or TUI
    • proxy
      • enable Turns on socks5 proxy forwarding for m3u8_streamlink.sh and record_streamlink.sh
      • server socks5://127.0.0.1:9999
    • debug
      • log Enables debug messages to print in the normal log
      • recorder Store the ffmpeg/streamlink logs to a file when recording
      • errortrace Include a stack-trace for each error message

TUI Screenshot

img

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].