Custom Twitch.tv Client
Project Description
Implements a customized client for viewing livestreams from Twitch.tv.
An instance of the client supports simultaneously viewing up to 4 livestreams with 3 viewing settings:
- a single stream with its chatroom
- two streams with their respective chatrooms
- four streams
Futhermore, the project supports viewing multiple instances of a client over
multiple monitors (up to 3). Therefore, a maximum of 12 livestreams can
be viewed simultaneously.
Features




Read PDF for even more features.
Motivation
At the initial time of project conception, Twitch.tv did not offer a method to view multiple livestreams simultaneously.
Thus, one would have to commonly choose one of the following compromises:
- Open multiple browser tabs but only focus on one, potentially missing entertaining segments of the other livestreams.
- Open multiple browser tabs and manually organize the windows but also having to endure the tedium, especially as the number of livestreams scale.
- Open only one browser tab but forgo all other livestreams, completely unaware of any entertaining segments of the other livestreams.
In this regard, I conceived of the idea of a customized client, capable of viewing multiple livestreams
simultaneously and being controlled effortlessly through hotkeys.
Design Goals
- The client must be capable of viewing multiple livestreams simultaneously.
- Hotkeys should be implemented to facilitate quick control of the client.
Benefits
- Circumvents ads from Twitch.tv by leveraging the
streamlink
module - Integrates with my personal Twitch.tv account
- Minimizes footprint, compared to a web browser, by embedding the mpv media player into the Qt GUI
- Provides quick control via hotkeys, removing the need to resize or move the client by dragging
- Allows for the alerting of livestreams under special conditions, such as when viewer count hits a
desired threshold, usually indicating that a special event is occurring
Notable Milestones & Roadblocks

Dependencies
Languages
- Python 3.8
- AutoHotkey 1.1
Python
- requests
- streamlink
- psutil
- pyqt6
- python-mpv
- python-twitch-client
External
- Libmpv
- Chatterino 2