1
0
Fork 0
streamtitle/README

135 lines
5.1 KiB
Plaintext

StreamTitle
StreamTitle is a little tool that I made so that I can change my
stream information from the command line. And if you configure it
properly, so it can for you.
How to configure
Go to the Twitch Developer Console (https://dev.twitch.tv/console)
and create a new application. The OAuth redirection URL must be
set to http://localhost:9300/st-callback but aside from that, you
can call the application whatever you want. Grab the client ID and
the client secret.
Create a file in $XDG_CONFIG_DIR/StreamTitle/config.toml with the
following two lines, having the values that are described below.
On macOS, the config.toml configuration file has to be created in
~/Library/Application Support/StreamTitle/config.toml.
# Replace with the actual values provided by the console
client_id = 'x'
client_secret = 'x'
How to use
On first start, or if the refresh token expires or gets
invalidated, you will be asked to login again or authorize the
application. It will print an URL, open it on your browser and
authorize the application.
To test the token connection, you can print your stream
information with the -current flag.
streamtitle -current
Current stream information:
Title: Golang development
Game: 1469308723
Language: en
Tags: [Golang Terminal Development]
You can use one or many flags to change the stream
information. You might need to pass the values in quotes to
prevent weird things from happening.
- `-title`: set the new stream title: `streamtitle -title "cooking
pasta"`
- `-game`: set the stream category; you need the category ID
(there are Google searches that can tell you the category ID):
`streamtitle -game 509670`
- `-lang`: set the stream language; use two character ISO code:
`streamtitle -lang es`
- `-tags`: set the stream tags; provide up to ten alphanumerical
strings separated by commas, no spaces: `streamtitle -tags
SafeSpace,Role,Retro`
A more complete example:
streamtitle -title "cooking pasta" -game 509667 -lang en
If you find yourself switching between two configurations many
times (for instance, if you find yourself changing between two
categories or reusing the same set of tags or title for different
streams), you might want to look into profiles.
A profile is a prerecorded set of title, category, language and
tags, which can be saved in the config file. It is possible to ask
StreamTitle to set the channel information from a profile.
To create a profile, add a table called "profiles". Each nested
table defines a profile called with the key of the profile. Each
nested table may have up to 4 keys: title (string), language
(string), game (number) and tags (string array).
[profiles.cooking]
game = 509667
language = 'en'
tags = [ 'Cooking', 'Dishes', 'IRL' ]
[profiles.programming]
game = 1469308723
tags = ['Programming', 'Golang']
[profiles.darksouls]
game = 490292
title = 'Dark Souls 100% no hit run'
tags = ['NoHit', 'NoBackseating', 'DarkSouls']
language = 'en'
Properties are not mandatory. You can skip a field, and it will
keep the previous value. So for instance if I don't set the
language in my profile then it will not update the value for that
field; effectively keeping the same language as before.
To use a profile, use the -profile parameter. It will update the
channel information to the contents of the profile that has been
set.
streamtitle -profile darksouls
You can also merge a profile with inline parameters. Inline
parameters always override the profile content, and this is useful
for profiles where you just want to change the game and the tags,
but you'd want to provide your own title.
streamtitle -profile programming -title 'Time to program some Go!'
You can list your available profiles using the following
command. It will print each profile name into a separate line.
streamtitle -list-profiles
Debug
You can always inspect what is the application is doing by using
the -verbose flag, which will print additional messages to the
terminal as the program does its things, such as login, update the
channel information or report errors.
You can also use the -dry-run option to avoid updating the stream
information. In conjunction, using -verbose -dry-run is a way to
check what will the final channel information will be set to
without actually changing the values.
streamtitle -dry-run -verbose -profile cooking -title 'Pizza night'
2024/02/18 Fetching stream information...
2024/02/18 Updating stream information...
2024/02/18 New title: Pizza night
2024/02/18 New game ID: 509667
2024/02/18 New language: en
2024/02/18 Tag list: [Cooking Dishes IRL]
2024/02/18 Skipping update because we are running in dry-run mode