Yannick Weiss

Streaming

I stream some of my coding sessions: https://www.livecoding.tv/brainzap, with the following software and settings.

Capture Software

To capture the screen I use OBS. It is free. It also is pretty good for just screen recording.

Green Screen

OBS supports Chroma Key Filter, which means you can add a video or webcam that was filmed in front of a Green Screen. For example:

doit

Audio Capture

OS X has no built in way to capture all audio so I use the free tool Sound Siphon. The demo allows you to capture the system audio for free.

Encoder

Under Output > Advanced you can now set the Encoder to Apple Hardware, which will reduce the CPU usage by a magnitude.

Other Settings

If you don’t know how to setup OBS you find tutorials for Twitch and [livecoding](https://www.livecoding.tv/obsguide/. Twitch also provides a setting calculator.

Testing

Before streaming do a testrun and check the following: * Check that no frames are dropped. (At the bottom of the app) * Correct aspect ratio and resolution. * Audio not too low or too loud. * Quality, is the displayed text readable.

Spotify integration

To display the current song in the stream I have a small Applescript that writes the current song into a text file, which I will display inside OBS.


set oldTrack to ""
set current_user to do shell script "whoami"

set the_file to "/Users/" & current_user & "/NowPlaying.txt"
do shell script "touch " & POSIX path of the_file -- create file
set oldSong to ""

repeat
    if application "Spotify" is not running then
        say "spotify is not running"
        return
    end if
    tell application "Spotify"
        try
            if player state is playing then
                set theTrack to name of the current track
                set theArtist to artist of the current track
                set theAlbum to album of the current track
                if oldTrack is not equal to theTrack then
                    set oldTrack to theTrack
                    tell application "Finder"
                        try
                            set eof of the_file to 0
                            set theSong to "\"" & theTrack & "\"" & " by " & theArtist
                            -- only save when new song is played to protect SSD
                            if (theSong is not equal to oldSong) then
                                write (theSong) to the_file as «class utf8»
                            end if
                            set oldSong to theSong
                            
                        end try
                    end tell
                end if
            end if
        end try
    end tell
    
    
    delay 5
end repeat