• Skip to main content
  • Skip to header right navigation
  • Skip to site footer

Alan Thompson Music

Alan Thompson Music

  • Home
  • About
  • Blog
  • Contact
  • Socials
    • Discord
    • Facebook
    • Instagram
    • Twitch
    • YouTube
    • My Songlist
Alan Thompson's guitar - soundhole closeup

Live music streamers – how to make a timestamped setlist for your Youtube VODs automatically!

March 3, 2025 by Alan Thompson

Follow this guide to create a timestamped setlist of the songs you played during your stream – great for using as clickable chapter markers in your YouTube VODs!

When I first started streaming on Twitch, I quickly learned how to use Streamersonglist so that viewers could choose songs from my list. For a while, I used to copy/paste the setlist history into my YouTube VODs, but it was messy, needed lots of manual editing, and quickly got very boring.

So I automated the whole process! Find out how below.

This process relies on Touchportal. Get it from www.touchportal.com

The pro version of Touchportal is only $13.99 for a lifetime license, so it’s insanely good value for money. Get it. (I wish they had an affiliate scheme, I would do far more to promote it.)

How to generate a setlist from streamersonglist following your stream

Before we get started, we need to create a text file that TouchPortal will use to write the data to, for each stream. In the example below, mine is called “time_stamps.txt”. Save it somewhere logical, as you’ll need to tell TouchPortal where this file lives.

Starting the stream with Touchportal

When you start your stream via a button on Touchportal, you can add other actions to that process. We will start the process of creating a blank text file for our set list, and begin writing to it.

YouTube needs an initial timestamp of 00:00 so we’ll hard code this in from the start.

I like the first line of my setlist file to be the date, and then we add 00:00 – Intro

Touchortal “code”:

The first line just clears the text file from the last stream, so that we’re starting from scratch.
I add small delays in between each command, as seems common practice, especially where there are file operations involved.
Throughout the processes below, you will need to link to your own time_stamps.txt file, wherever you saved it.

There is a more detailed description below, including which TouchPortal functions to use.

LineTP functionDescription
1Remove line from fileThis just clears the timestamp file from last time, so that we’re starting with a clean, blank file.
2Wait for timerAdds a short delay, time for processing.
3Append to fileWrites the date to our fresh timestamp file.
4Wait for timerAdds a short delay, time for processing.
5Append to fileAdds the zero time start point, which YouTube needs.
It must start with 00:00 but the rest can say whatever you want.

My streams start with a countdown timer, but even if you launch straight in, there’s always going to be a bit of chat before the very first song.

Creating the timestamp for each song

Next, we need a reliable way of triggering a timestamp when each song starts. Preferably this should be tied to something you’re already in the habit of doing.

For me, I have a button on my Touchportal which mutes and un-mutes my vocal reverb. It also triggers a source in OBS to display an overlay showing the name of the current song, effectively to announce that song.

It was therefore an obvious choice to attach the timestamp action to this particular sequence, because I’m already in the habit of triggering that before and after each song.

If you don’t already have a sequence like this, the easiest option will be to create a new button in TouchPortal, which you’ll need to remember to tap just before starting a new song.

Before we can create the actions, you need to download the free Data Parser plugin for TouchPortal.

Once you have DataParser plugin installed, the actions need to look like this:
(detailed description below, including which TP functions to use)

LineTP functionDescription
1URL content to valueThis pulls data from our song queue. Modify the URL to match your own username:
https://api.streamersonglist.com/v1/streamers/alanthompson_music/queue
Use Local Value > Local Value 01
2Wait for timerAdds a 2 second delay, to allow time for the data retrieval.
3Parsing dataUses the data parser plugin to read the data in Local Value 01, to get [list][0][song][title], which extracts the current song name. We assign this value to a variable called “currentsong”.
4Parsing dataUses the data parser plugin to extract the artist name, assign to name “currentartist”. Use the following in the data to “get”: [list][0][song][artist]
5Wait for timerAdds a 1 second delay.
6Append to fileThis adds the timestamp and song/artist info to our text file.
Firstly, add the variable OBS > “OBS Stream Time Short”, followed by a dash, then copy and paste these strings, with something to separate them, e.g. a dash
${value:KillerBOSS.TPPlugin.DataParser.userState.currentsong} - ${value:KillerBOSS.TPPlugin.DataParser.userState.currentartist}

Whenever the process above is called, it will add the timestamp and the song details to the next line in your text file!

When you come to the end of your stream, you will have a time_stamp.txt file that contains your full set list, in order, with timestamps that will work in your Youtube VODS as clickable chapter markers.

I hope you found this helpful! Please leave any comments or questions below.

Category: Blog

Reader Interactions

Comments

  1. memella

    March 4, 2025 at 1:07 am

    This is incredible! I’m interested in using touch portal with streamersonglistbot and potentially even streamerdotbot – so glad to see how much you’ve figured out in this setup!

    Reply
    • Alan Thompson

      March 4, 2025 at 7:13 am

      Thank you! I rely quite heavily on Touchportal for my stream, and it’s amazing what you can do with it.

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Like what you hear?

Get in touch with me. It’s always nice to hear from people.

Get in touch!

Social

Follow along on social media

  • Twitch
  • Instagram
  • YouTube
  • Facebook
  • TikTok
  • Twitter

Contact

If you’d like to contact me, please send a message via my contact page.


Navigation

  • Home
  • About
  • Blog
  • Contact
  • Socials
    • Discord
    • Facebook
    • Instagram
    • Twitch
    • YouTube
    • My Songlist

Newsletter

Join our newsletter

Check your inbox or spam folder to confirm your subscription.

Copyright © 2025 · Alan Thompson Music · All Rights Reserved · Powered by Mai Theme

Return to top