Skip to content

Gucken is a Terminal User Interface which allows you to browse and watch your favorite anime's with style.

License

Notifications You must be signed in to change notification settings

Commandcracker/gucken

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gucken

Project state: Pre-Alpha

Description

Gucken is a Terminal User Interface which allows you to browse and watch your favorite anime's with style.

Usage

Search Watch

Installation

Windows

Install Python and if you are on Windows 10 Windows Terminal for a better experience.

pip install gucken
gucken
Linux

Install Python and then

pip install gucken
gucken
Android

Install Termux and run:

yes|pkg update
pkg install python ffmpeg -y
pip install gucken
gucken

Shortcut

Install Termux:Widget.

mkdir ~/.shortcuts
Lunch shortcut
echo gucken>~/.shortcuts/Gucken
Update shortcut
echo pip install -U gucken>~/.shortcuts/Update\ Gucken

Custom Font

If you want a custom font then just pace the ttf in ~/.termux/font.ttf. Recommended fonts: Nerd fonts (Only use Mono fonts!)

Downloads

Setup storage for downloads. (Default download location: /data/data/com.termux/files/home/storage/movies)

termux-setup-storage

Features

  • Update checker
  • Language priority list
  • Hoster priority list
  • Automatically use working hoster
  • Browsing
    • Descriptions
  • Watching
  • Downloading
    • Watch from download

Provider

List of supported Anime sites

Hoster

List of supported video hoster.

  • VEO
  • Vidoza
  • Doodstream
  • SpeedFiles
  • Vidmoly
  • Streamtape (Removed from AniWorld & SerienStream)
  • Filemoon
  • Luluvdo

Player

List of supported video players

Custom CSS

For power users only

Place your custom CSS in user_config_path("gucken").joinpath("custom.css") and it will be automatically loaded by Gucken.

Optional dependencies

  • speedups (with: gucken[speedups])
    • Faster fuzzy sort/search. (levenshtein)
    • Faster json parsing. (orjson)
  • socks - SOCKS proxy support. (with: gucken[socks])

Todo

Privacy

  • Proxy support
Proxies can easiely be implented

for the http client in python
AsyncClient(proxy="http://...")
  
for the player mpv Note: mpv dos not support socks5
--http-proxy=<proxy>
FFmpeg: env.http_proxy
ytdl: --ytdl-raw-options=proxy=
  
yt-dlp
--proxy URL
AniWorld.to need Cloudflare captcha and JS challange
SerienStream.to can be bypassed by using diract ip
  
Cloudflare captcha and JS challange can be solved by using something like
selenium or playwright
  • DoH support
  • Reverse proxy for player
    • DoH
    • proxy

UX

  • Add hotkey to clear cache (F5)
  • Translation DE, EN
  • Improve settings design
  • Merge SerienStream.to and AniWorld.to search results
  • Focus window on autoplay popup
  • Utilize next and previous buttons in mpv
  • Chapters for VLC
  • Window in settings menu to show where files are located (data, logs, config, downloads)
  • s.to, aniworld.to scrape episode description
  • Search in episodes
  • Next and Cancel hotkeys
  • Show hotkeys in Footer
  • Create shortcut Windows & Linux
  • Installation helper
  • Colors themes

Speedups

  • Pre-fetching
  • More threads and asyncio.gather to make everything faster
  • More Caching
  • Reuse Client

Code

  • Do unescape and stripe only on render
  • Dont coppy code from SerienStream.to to AniWorld.to
  • BIG CODE CLEANUP

Features

  • Update checker option to perform update
  • Watchlist
  • New anime/series Notifications
  • Image preview (Kitty protocol, iterm protocol, Sixel, textual-web)
  • Use something like opencv to time match a sub from aniworld with a high quality video form another site.
  • Nix package
  • Docker image
  • Flatpack package
  • Detect existing chapters and use them for skip
  • Reverse proxy for players that do not support headers
  • Up-scaling (after download)
  • Modular (Custom extractors/players, open API)
  • More CLI args
  • MPV Screen selection
  • Custom player args
  • Custom player
  • Anime4k options

Support

  • Mac support
  • IOS support
  • Support textual-web
  • Syncplay on Android
  • Improve Flatpack support
  • Improve Snap support

Bugs & DX

  • Proper error handling
  • Logging and Crash reports
  • Blacklist detection & bypass
  • 404 detection inside Hoster and don't crash whole program on http error + crash reports/logs
  • CI Testing (Windows, Linux)