Live Stream DVR

Updated on 5/28/2019

Overview

Live Stream DVR will poll Twitch.tv, YouTube Live, or HLS streams to check if a broadcaster is currently broadcasting. If the broadcast is live, Live Stream DVR can output the stream to a file, VLC, or both. The corresponding stream chat can also be displayed and recorded. This allows the user to playback the stream and chat at a later time as if the stream was being watched live.

Download

Download Live Stream DVR 3.1 w/ Synchronized Video Player
Requirements not included in zip file:
  1. .NET 4.6.2
  2. .NET Core 3.0
Requirements included in zip file:
  1. StreamLink - Used for recording streams
  2. youtube-dl - Used for youtube related queries
  3. GeckoFx - Embedded Firefox browser that is used for displaying chat
  4. CefSharp - Embedded Chromium browser that is used for displaying chat
  5. ffmpeg - Used for recording chat, and optionally for merging stream and chat video files
  6. LibVLCSharp - Embedded VLC media player

Updates in 3.1 (5/28/19)

  1. Injected javascript is now customizable
  2. Moved from nVLC to LibVLCSharp
  3. The video player is now using .NET Core 3.0 (download runtime)
  4. Several bug and stability fixes mostly in the chat window

Updates in 3.0 (8/12/18)

  1. Added support for Youtube Live, and HLS streams
  2. Added support for recording Youtube Live chat rooms
  3. Switched from LiveStreamer to StreamLink
  4. Updated LibVLC to 3.0
  5. New notification icons
  6. Misc bug and speed fixes

Previous Updates

  1. Temporarily disabled auto-loading of channels (4/19/18)
  2. Fixed an issue where twitch chat was unreadable (text is now white) (4/19/18)
  3. VLC libraries are now included, no more need for a separate VLC install (4/19/18)
  4. Added additional stream quality options to quality drop-down box (4/23/17)
  5. Flash plug-in is now disabled for the embedded Firefox plug-in (4/23/17)
  6. Twitch bits donations are now hidden (4/23/17)
  7. Twitch chat background is now black (4/23/17)
  8. Updated to use OAuth Token when making Twitch API calls (12/18/16)
  9. Fixed destiny.gg chat issues, removed sign-in bar, and now uses https (12/18/16)
  10. Upgraded to Geckofx45 version 45.0.28 (12/18/16)
  11. Updated from Geckofx33 to Geckofx45 (8/29/16)
  12. Version 2.0 (6/18/2016)
  13. Initial release (6/18/2015)

Screen-shots

Features

  1. Automatically start recording a Twitch, Youtube, or HLS stream when a broadcast starts
  2. Never have to deal with the Twitch VOD system (constant buffering, and muted streams)
  3. Display and/or record the chat for Twitch and YouTube streams
  4. Option to output the stream to file and VLC at the same time
  5. A channel selection drop-down is provided that contains a Twitch user's followed channels sorted by viewers
  6. Command line interface to allow for setting up recordings of multiple streams
  7. Recorded files are in their original stream quality (no trans-coding)
  8. Ability to watch recorded VOD's and the corresponding chat at a faster playback rate
  9. Minimizes to task tray
  10. Receive task tray notifications when broadcasts start
  11. See recording status at a glance in the Windows notification tray
  12. The BetterTwitchTV plug-in is automatically loaded for Twitch chat channels.

Usage

Components

See screen-shots as everything is basically "what you see is what you get".

App Description
LiveStreamDVR.Manager.exe

This program manages all the open instances of LiveStreamDVR.exe, and manages the VOD archive. It will show a status of each instance of LiveStreamDVR.exe and allow for controlling one or all instances. This app is where you can set and load all of your favorite channels.

This app does not need to be open for recordings to happen. However, it does make it easier to manage and see the status of the VOD archive.

Windows will ask for permission to open a TCP port. This port is used for communicating with all the LiveStreamDVR.exe instances.

LiveStreamDVR.exe

This app is responsible for doing the stream and chat recordings for a single channel.

This app can also be loaded and simply used for the channel list drop-down to find and watch a stream that is currently broadcasting.

Troubleshooting

The top pane is the console output from livestreamer.exe (stream recording). The bottom pane is the console output from ffmpeg.exe (chat recording).

Status colors (Windows notification tray and in the Live Stream DVR Manager)
Color Description
Gray Idle
Green Waiting for broadcast to start (polling)
Red Broadcast in progress
SynchronizedVideoPlayer.exe This app is responsible for the playback of recorded files. See the "Playback" section for more information.



Settings

Live Stream DVR Settings
Setting Description
Output Path Full path to store the saved stream VOD and chat files. A new sub-directory under this path will be created for each Twitch.tv channel. When recordings are in progress they will exist in the output path, after they are done they get moved to the appropriate sub-directory.
VLC Path Full file path to VLC
Twitch OAuth Token The owner of the OAuth token specified will have their channels loaded in the Live Stream DVR channel list.
Recorded Chat FPS This specifies the frames per second the chat is recorded at. The default is 5 FPS but you may want to increase this for smoother BetterTwitchTV animated emotes. (default is 5 frames per second)
VOD Duration (minutes) This specifies how many minutes until a new VOD file is created. This was implemented to make file sizes more manageable. (default is 60 minutes)



Playback

Included in the zip file is the "Synchronized Video Player" to playback the recorded stream and the captured chat files synchronously. Alternatively, you could transcode the recorded stream and chat video files together (see below, "Use ffmpeg to Merge Video and Chat Files into a Single File"). This video player will play two files at the same time (side-by-side). The files will by synchronized; this means that any seeking, jumping, playback rate changes, or pausing will be applied to both video files. 

The control panel will be hidden when the video pane is clicked, and will be displayed again when the mouse hovers towards the bottom of the window. There are also hotkeys to control the control panel visibility.

Synchronized Video Player Features
  1. Playback of two files simultaneously and synchronized
  2. Adjustable playback rate
  3. Adjustable video pane sizes
  4. Jump and seek functionality
  5. Volume controls for both videos
  6. Delay setting to aid in synchronizing
  7. Playback of single video files
  8. Clean UI (no menu, hide-able control panel)
  9. Dark theme
  10. Intuitive hot-keys
  11. Drag and drop file support
  12. Clip Start/Stop button: Export a clip as a single file (stream and chat video files will be merged into a single video). The first click will set the start point of the exported clip. The second click will set the endpoint of the clip and start the export.
  13. Next button: Send the current stream VOD and chat file to the recycle bin, and then load and play the next stream VOD and chat file.
Hot-keys
Hotkey Action
Space-bar Play/Pause
F Toggle full-screen mode
Escape Leave full-screen mode
Q Jump forward 5 seconds
W Jump forward 30 seconds
E Jump forward 3 minutes
A Jump backward 5 seconds
S Jump backward 30 seconds
D Jump backward 3 minutes
+ Increase playback rate 10%
- Decrease playback rate 10%
1 Toggle show advanced controls / hide control panel
2 Toggle show normal controls / hide control panel
O Open files



Batch File / Command-line Usage

This feature is obsolete after version 2.0 as it has implemented the saving and loading of favorites using the manager. Live Stream DVR can still be invoked from the command-line if desired.

Parameters:
LiveStreamDVR.exe channelType channelName streamQuality outputMode showChat recordChat showDGGChat

channelType values:

  • twitch
  • youtubeuser (user name or id)
  • youtubechannel (channel name or id)
  • youtubegaminguser (user name or id)
  • hls (full http url of hls stream .m3u8 file)

streamQuality values: use the values that are available in the quality drop-down box, or see StreamLink documentation.

outputMode values:

  • 1 = VLC and File
  • 2 = File Only
  • 3 = VLC Only

showChat, recordChat, showDGGChat: true or false

Known Issues

  1. VLC volume isn't adjustable when using the File & VLC output mode. To workaround this, set the VLC volume to the desired volume then reopen VLC through Live Stream DVR in File & VLC mode.
  2. As of 3.0, starting and stopping will take longer than before as it reindexes the file before moving it to the archive directory. This should take 5-15 secs based on VOD length and cpu/hdd speed.
  3. YouTube chat rooms can cause high memory usage.
Chat Window is Poorly Scaled when Using Non-Standard DPI Settings in Windows 10

I have found the following settings the most optimal when using a non-standard DPI settings. You can change these values by going into the LiveStreamDVR.exe file properties, then to the compatibility tab, then click the "Change High DPI settings" button.

Twitch API Requiring an OAuth Session

In September 2016, Twitch changed their API's to require authentication. This means an OAuth token will need to be passed for any API calls or stream access.

To get your OAuth token:

  1. Open the settings form and click the "..." next to the OAuth token text box.
  2. Your browser will open and ask you to login to twitch. It will give you a "page does not exist" error.
  3. Check the URL. It has a section that says access_token=xxxxxxxxxxxxxxxxxxxxxxxx. Copy the xxxxxxxxxxxxxxxxxxxxxxxx portion of this string.
  4. Paste that value as the Twitch OAuth Token setting.
  5. The recording of streams, and channel list will now work.