haaag / PyTwitch

A user-friendly tool for easily accessing and watching live streams, videos, and clips from Twitch.
MIT License
6 stars 0 forks source link
dmenu dmenu-scripts dmenu-twitch dmenu-wrapper fzf fzf-scripts fzf-wrapper rofi rofi-menus twitch twitter-api twtich-streams
![Python](https://img.shields.io/badge/python-3670A0?style=Flat&logo=python&logoColor=ffdd54) [![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v0.json)](https://github.com/charliermarsh/ruff) [![types - Mypy](https://img.shields.io/badge/types-Mypy-blue.svg)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-9400d3.svg)](https://spdx.org/licenses/)

Twitch Menu

⭐ About

A user-friendly tool for accessing and watching live streams, videos, and clips from Twitch.

📼 Video

https://github.com/haaag/PyTwitch/assets/81921095/e8f07a06-d9dd-47e0-a6d4-f9fba455be16

⚡️ Requirements

🔒Credentials

For authentication, you can set environment vars in your shell and export them or use the .env file and put it in the root of the project.

env-template file

# Twitch credentials
TWITCH_CLIENT_ID="xxxxx"
TWITCH_ACCESS_TOKEN="xxx"
TWITCH_USER_ID="123456"

🔓Credentials directions

📦 Installation

# Clone repository
$ git clone "https://github.com/haaag/pytwitch.git"
$ cd pytwitch

# Create virtual environment & source
$ python -m venv .venv
$ source .venv/bin/activate

# Install requirements
(.venv) $ pip install -r requirements.txt

# Install
(.venv) $ pip install .

🛠️ Usage

After installation you can use the command pytwitch

Or use a alias like alias pt='pytwitch -e ~/path/to/envfile/.env'

$ pytwtich -h
Simple tool menu for watching streams, videos from twitch.

arguments:
    -m, --menu          select menu [rofi|dmenu] (default: rofi)
    -e, --env           path to env file
    -C, --channel       search by channel query
    -G, --games         search by game or category
    -v, --verbose       increase verbosity (use -v, -vv, or -vvv)
    -h, --help          show this help

options:
    --no-markup         disable pango markup (rofi)
    --no-conf           disable `mpv` configuration

⌨️ Keybinds Rofi only

Keybind Usage
alt-k list keybinds
alt-s search by category or game
alt-c search by channel
alt-v list channel's videos
alt-t group by category or game
alt-o open stream chat in browser
alt-i show item information
alt-m show top streams
alt-g show top games with streams
alt-m multi-select streams

🔗 References

➕ Dependencies

🧰 TODO