Assista a vídeos do wcofun.com diretamente do seu terminal. Você pode pesquisar, transmitir e baixar vídeos ou listas de reprodução. Você também pode continuar a partir do episódio em que parou.
Basta baixar o script wcofun, instalar as dependências listadas abaixo e executá-lo.
wget https://raw.githubusercontent.com/matheusfillipe/wcofun.cli/master/wcofun
chmod +x wcofun
./wcofun
sudo apt install coreutils jq fzf rofi mpv -y
Infelizmente você ainda precisará do htmlq que pode ser instalado com o cargo:
cargo install htmlq
Ou baixe da página de lançamentos e coloque no seu caminho:
# Notice this might not be the earliest version!
wget https://github.com/mgdm/htmlq/releases/download/v0.4.0/htmlq-x86_64-linux.tar.gz
tar -xvzf htmlq-x86_64-linux.tar.gz
sudo cp htmlq /usr/bin/ # or anywhere in your path
Você pode instalar a partir do AUR: https://aur.archlinux.org/packages/wcofun
yay -S wcofun
Ou se você baixar o script, poderá obter as dependências com:
yay -S coreutils mpv htmlq jq fzf rofi # htmlq is on the AUR
Para evitar problemas de "Não encontrado":
yay -S curl-impersonate-chrome
brew install coreutils htmlq jq fzf mpv
./wcofun
ou ./wocfun search query here
Se você deseja baixar todos os episódios: ./wcofun -d Search query here
WCOFUN.CLI
---------------------------------------------------------------------------------
Syntax:
/home/matheus/Projects/wcofun/wcofun [-n] [-s | -D | -d [range]] [search query]
All parameters are optional.
Example:
Search and stream or download one episode: wcofun [search query]
Download all episodes: wcofun -D [search query]
Watch next episode: wcofun -n
Options:
-D: Download all episodes of selected anime.
-d [ep-number|start-end]: Download a range of episodes by specifying the beginning and end. You can also specify a single episode number or a range like n- to download all starting from the nth or -n to download all until the nth. An empty range (-) will cause cause it to prompt for the episode number and then download.
-s: Stream selectped episode
-n: Play next episode of lastly watched anime
-p: Play previous episode of lastly watched anime
-P [command]: Pre execution command. Useful for launching an http proxy.
-e: Edit config with nvim
-c: Edit cached searches with nvim
-h: Show this help
Por padrão, ele usará fzf de um terminal e rofi se nenhuma saída de terminal estiver disponível. Você pode ter um arquivo de configuração em ~/.wcofunrc
onde você pode exportar algumas variáveis relevantes:
# MENU_CMD: Choose your menu command. Tested with dmenu, fzf and rofi only
# NOTIFY_CMD. How to tell you about the status. Leave empty for a simple echo to stdout
export MENU_CMD= " fzf "
export MENU_CMD= " rofi -dmenu -i "
# MENU_CMD="dmenu"
export NOTIFY_CMD= " notify-send WCOFUN "
# User agent. Maybe you have problems so try changing this.
export UA= " User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0 "
# Maybe you want to use a proxy? (Helps when getting blocked by cloudflare, or if you want to debug)
export CURL_EXTRA_PARAMS= " " # this option is not used for stream and download
# CURL_EXTRA_PARAMS="-k --tlsv1 -x http://localhost:8080"
export PRE_COMMAND= " "
# PRE_COMMAND="mitmdump 2>&1 /dev/null"
Se você não está obtendo resultados para tudo, provavelmente está sendo bloqueado pelo cloudflare. Esse problema acontece porque o handshake tls do curl não é igual ao do navegador. Aqui estão algumas soluções para isso:
Instale um proxy como mitmproxy
: pacman -S mitmproxy
ou brew install mitmproxy
e crie uma configuração como:
export CURL_EXTRA_PARAMS= " -k --tlsv1 -x http://localhost:8080 "
export PRE_COMMAND= " mitmdump 2>&1 /dev/null "
Isso iniciará o proxy localmente antes do início da pesquisa wcofun.
Se você estiver no Linux, descobri que isso se deve à versão mais recente do openssl que de alguma forma é detectada pelo cloudflare. Você pode obter o 20.04 libssl.so.1.1
do Ubuntu em uma máquina Ubuntu ou aqui. Extraia a biblioteca dela e inicie wcofun configurando LD_LIBRARY_PATH
adequadamente.
mkdir libssl
cd libssl
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
ar xar x libssl1.1_1.1.1f-1ubuntu2_amd64.deb
tar xf data.tar.xz
mkdir -p ~ /curlibs
cp usr/lib/x86_64-linux-gnu/libssl.so.1.1 ~ /curlibs
cd ..
rm -r libssl
# And finally run it like:
LD_LIBRARY_PATH= ~ /curlibs wcofun
Ou você pode adicionar export LD_LIBRARY_PATH=~/curlibs
ao seu ~/.wcofunrc
.
Crie este projeto conforme descrito no leia-me, escolhendo Firefox ou Chrome, copie o executável curl construído para algum lugar do seu sistema e defina CURL_PATH
para ele.
git clone --depth=1 https://github.com/lwthiker/curl-impersonate
cd curl-impersonate
docker build -t curl-impersonate-chrome chrome/
# Wait for a while and let's check it out
docker run -it curl-impersonate-chrome /bin/bash
ls /build/out
Se você vir curl-impersonate curl_chrome98
significa que funcionou. Não feche o shell do contêiner ainda.
rom outro tipo de terminal:
docker cp curl-impersonate-chrome:/build/out/curl-impersonate /some/important/path/curl-impersonate
Agora basta definir CURL_PATH="/some/important/path/curl-impersonate"
no seu ~/.wcofunrc
No Arch Linux você pode instalá-lo facilmente com:
yay -S curl-impersonate-bin
E defina CURL_PATH="/usr/local/bin/curl-impersonate-chrome"
em seu ~/.wcofunrc