Skip to content
alvarorichardPublic

About

Search, stream and download anime, movies and TV shows from the terminal, in English and Brazilian Portuguese.

Topics

Resources

Contributing

Stars

1.1k stars

Watchers

12 watching

Forks

Repository files navigation

English | Português

GoAnime logo

GoAnime

CI Latest release Go Reference AUR License

GoAnime is a terminal application for searching, streaming and downloading anime, movies and TV shows in English and Brazilian Portuguese. It searches several sources at once, plays the selected episode in mpv, and keeps track of where you stopped.

Searching for a title in GoAnime, picking it from the results and streaming it

It is a single binary for Linux, macOS and Windows, and mpv is all it needs to stream. FFmpeg is optional: downloads use it to embed subtitles, and upscaling a video requires it.

Contents

Features

  • Searches every enabled source in parallel and falls back to another source when one fails.
  • Subbed and dubbed anime in English and Portuguese, plus Portuguese movies and TV shows.
  • Streams with quality selection, or downloads a single episode, a range, or a whole series.
  • Saves downloads with Plex-compatible names (Anime - S01E01.mp4).
  • Resumes playback and remembers watched episodes.
  • Skips the opening from the player menu, using timestamps from AniSkip.
  • Discord Rich Presence.
  • Anime4K upscaling in real time while you watch, or of video and image files.
  • Updates itself with goanime --update.

Installation

GoAnime uses mpv for playback. Install mpv first, unless you use the Windows installer, which includes it.

Prebuilt binaries for every platform are available on the releases page.

Windows

GoAnime ships as a per-user installer and as a portable ZIP. Neither needs administrator rights.

Download and run GoAnime-Installer-<version>.exe from the latest release. It installs GoAnime and mpv under %LOCALAPPDATA%\Programs\GoAnime and adds that folder and its bin subfolder to your user PATH. It does not ask for UAC. If an old 1.x all-users installation is found, the installer asks you to uninstall it first, so two copies do not compete in PATH.

If you prefer not to use the installer, download goanime-windows-amd64.zip, extract goanime-windows-amd64.exe, rename it to goanime.exe and put it in a folder on your PATH. The archive does not include mpv: install it separately. GoAnime finds mpv.exe on your PATH or in the same folder as goanime.exe.

Unsigned binaries and SmartScreen. GoAnime releases are not signed with a paid Authenticode certificate, so Windows SmartScreen may show "Windows protected your PC" the first time you run the installer or goanime.exe. That warning is expected for an unsigned project; it does not mean the file is known to be malicious or safe. Verify the SHA-256 against checksums-sha256.txt (see Verifying a download). Only if it matches, choose More info → Run anyway. Never disable SmartScreen globally, and never run a file whose hash you have not checked.

When you launch GoAnime on its own (double-click, Start menu or a desktop shortcut), it runs in Windows Terminal so the interface gets color, UTF-8 and font fallback. If it started in the classic console and Windows Terminal is missing, GoAnime tries winget once; when winget is unavailable, as in Windows Sandbox, it unpacks the official x64 Windows Terminal build embedded in the executable into %LOCALAPPDATA%\GoAnime\WindowsTerminal and reopens from there. That path needs neither network nor administrator rights; builds for other architectures download the official archive instead. Without a usable copy GoAnime continues in the classic console. Set GOANIME_TERMINAL=conhost to stay in the classic console.

macOS

brew install mpv
curl -Lo goanime https://github.com/alvarorichard/GoAnime/releases/latest/download/goanime-darwin-universal
chmod +x goanime
sudo mv goanime /usr/local/bin/

The binary is universal and runs on both Apple Silicon and Intel Macs. If you download it with a browser instead of curl, macOS quarantines it and refuses to run it; clear the flag with xattr -d com.apple.quarantine /usr/local/bin/goanime.

Arch Linux

GoAnime is available in the AUR:

yay -S goanime

Debian, Ubuntu, Fedora and other distributions

Install mpv with your package manager (sudo apt install mpv or sudo dnf install mpv), then:

curl -LO https://github.com/alvarorichard/GoAnime/releases/latest/download/goanime-linux-amd64.tar.gz
tar -xzf goanime-linux-amd64.tar.gz
sudo install goanime-linux-amd64 /usr/local/bin/goanime

For ARM64, replace amd64 with arm64.

From source

With Go 1.27.3 or later:

go install github.com/alvarorichard/Goanime/v2/cmd/goanime@latest

The v2 module path is github.com/alvarorichard/Goanime/v2; library imports must use that prefix. The previous v1 module remains available at the old path.

Progress tracking is backed by SQLite and requires CGO, so a C compiler must be available when building. Without one, GoAnime still builds and runs, but does not track progress. The release binaries are built with SQLite. See docs/BUILD_OPTIONS.md for details.

Verifying a download

Every release includes checksums-sha256.txt. Compute the hash of the file you downloaded and compare it with the line for that file:

sha256sum goanime-linux-amd64.tar.gz   # Linux
shasum -a 256 goanime                  # macOS, the goanime-darwin-universal line
Get-FileHash goanime-windows-amd64.zip # Windows, in PowerShell

checksums-sha256.txt is published in the same release as the binaries, so it detects a corrupted or truncated download, not a compromised release. The Windows and macOS binaries are not code-signed; the operating system may warn on first launch.

Updating

Installed with Update with
Windows installer (2.0.0+) goanime --update, or the installer of the new version
Windows installer (1.x) The v2.0.0 installer once; after that, goanime --update
Windows portable ZIP goanime --update
AUR Your AUR helper, for example yay -Syu
A release binary or archive goanime --update
go install The same go install command

goanime --update checks the download against the release's checksums-sha256.txt and installs nothing if they do not match. On Windows it stages the new executable next to the running one, lets a helper finish the replacement after GoAnime exits, and keeps the previous binary as goanime.exe.backup until the new version starts successfully. See docs/AUTO_UPDATE.md for the full flow.

The per-user Windows installer lives in a folder the user can write to, so goanime --update does not need elevation. On Linux and macOS, if the executable lives in a folder you cannot write to, such as /usr/local/bin, run sudo goanime --update.

Usage

Run goanime without arguments to open search home. Type a name and press enter, or press ↓ to pick from the lists below: Continue reopens an episode where you stopped (enter resumes, r starts over, e lists episodes, x removes it) and Recent repeats a past search with its result count. tab switches scope between ALL, PT-BR, ENGLISH and MOVIES/TV. From a result, choose a version with ← → and, for a series, an episode. You can also pass the name directly:

goanime "one piece"

Use spaces in the name, not hyphens.

Anime downloads go to ~/.local/goanime/downloads/anime/ unless you pass -o:

goanime -d "one piece" 1                  # episode 1
goanime -d -r "naruto" 1-12               # episodes 1 to 12
goanime -d -a "one piece"                 # every episode
goanime -d --quality 720p "frieren" 1     # a specific quality
goanime -d -o ~/Anime "bleach" 10         # a custom directory

The directory given to -o must be inside your home folder.

Movies and TV shows use -dm and go to ~/.local/goanime/downloads/movies/:

goanime -dm "Interstellar"                # a movie
goanime -dm --type tv "Dark" 1 5          # season 1, episode 5
goanime -dm -r "Dark" 1 1-5               # season 1, episodes 1 to 5
goanime -dm -a "Dark"                     # every season

Some streams are downloaded with yt-dlp, which GoAnime fetches on its own the first time it needs it.

Other options:

goanime --source animefire "jujutsu kaisen"   # search a single source
goanime --upscale --upscale-hq video.mp4      # upscale a file with Anime4K
goanime --update                              # update to the latest release
goanime --debug "naruto"                      # write a debug log

Run goanime -h for the full list of options.

Keys

Key Action
↑ ↓ or k j Move
Type, or / Filter the list
g G First or last item
Enter Select
Esc Go back
tab Switch search scope (search home)
← → Choose a version (results)
r e x From start, episodes, remove (Continue list)
d D A m Download one, range, all, options (episodes)

In a menu that shows a letter beside each option, that letter picks the option at once; any other key still filters.

The episode list marks the episodes you finished with ✓ and the one you stopped partway with ◐, and opens where you left off.

While watching

While mpv plays, the terminal shows the player menu, with how far the episode has played:

Key Option What it does
n Next episode Play the next episode
p Previous episode Play the previous episode
e Select episode Pick another episode from the list
c Change anime Search for another title
s Skip intro Jump past the opening, when AniSkip has its timestamps
a Audio track Switch the audio track, when there is more than one
t Subtitles Switch or turn off subtitles, when there are any
Esc ← Back Return to the download and playback menu
q Exit Close mpv and quit

For a movie, the menu offers Replay movie (r), Change movie (c), the track options, ← Back and Exit. When an episode or movie has saved progress, GoAnime asks whether to resume from where you stopped.

Real-time upscaling

Real-time Upscale, in the menu before playback, applies Anime4K shaders in mpv. The first time, choose Setup shaders to download them, then pick a mode. Each mode's label says what it is for, from Performance for a weak GPU to Ultra for SD sources.

Sources

Source Content Language Notes
HiAnime Anime English, subbed and dubbed Subbed by default
AnimeFire Anime Portuguese (Brazil)
AnimesDigital Anime Portuguese (Brazil) Subtitled and dubbed
AnimeDrive Anime Portuguese (Brazil) Host override: GOANIME_ANIMEDRIVE_URL
Goyabu Anime Portuguese (Brazil) Disabled by default, see below
StartFlix Movies, TV Portuguese (Brazil) Dubbed and subtitled
TopCine Movies, TV Portuguese (Brazil) Catalog only; playback goes through StartFlix
Pobreflix Movies, TV Portuguese (Brazil) Direct MP4 playback; StartFlix panel fallback

--source limits a search to one source: hianime, animefire, goyabu, animesdigital, animedrive, startflix, topcine or pobreflix. movietv covers StartFlix, TopCine and Pobreflix; ptbr covers every Portuguese source.

Pobreflix asks the site's /api catalog first and falls back to its sitemap index. Current movie and episode pages embed public MP4 servers, so playback is direct and needs no browser. Old-theme pages still use the StartFlix panel.

AnimeDrive's host is intermittently unreachable from some networks. If the site moves or your network blocks it, GOANIME_ANIMEDRIVE_URL points the source at a reachable mirror.

Goyabu is behind a Cloudflare managed challenge and is disabled by default. It works on networks that Cloudflare does not challenge; on a challenged network no browserless HTTP client can clear the challenge. Enable it with GOANIME_ENABLED_SOURCES=goyabu.

GoAnime depends on third-party websites, and those websites change without notice. When one does, the corresponding source can stop working until it is updated. A scheduled workflow checks every source daily, so breakage is usually visible there before it is reported.

Configuration

GoAnime needs no configuration file. A few environment variables cover less common needs:

Variable Description
GOANIME_ENABLED_SOURCES Comma-separated sources to enable, such as goyabu
GOANIME_DISABLED_SOURCES Comma-separated sources to skip
GOANIME_THEME dark, light or auto (default): auto asks the terminal once for its background
GOANIME_TERMINAL conhost keeps Windows GoAnime in the classic console instead of reopening it in Windows Terminal
GOANIME_PLAIN Set to 1 for the plain interface: no colors, no Japanese glosses, ASCII only (same as --plain, NO_COLOR or TERM=dumb)
GOANIME_JAPANESE 1 always shows the Japanese glosses, 0 always hides them; unset, GoAnime shows them where the terminal has a font for them
GOANIME_HIANIME_AUDIO sub (default) or dub
GOANIME_STRICT_SOURCE Set to 1 to report an error instead of guessing an unknown source
GOANIME_ANIMEFIRE_API Address of the AnimeFire API
GOANIME_ANIMEDRIVE_URL Address of AnimeDrive
GOANIME_POBREFLIX_URL Address of Pobreflix
GOANIME_STARTFLIX_URL Address of StartFlix
GOANIME_STARTFLIX_PANEL_URL Address of the StartFlix video panel
GOANIME_TOPCINE_URL Address of TopCine
TMDB_API_KEY A TMDB key for movie, TV and season details
OMDB_API_KEY An OMDb key to use instead of the shared demo key

The address variables point a source at a new domain when its site moves, without waiting for a new release.

Files

What Linux macOS Windows
Watch history ~/.local/goanime/tracking/progress.db ~/.local/goanime/tracking/progress.db %LOCALAPPDATA%\GoAnime\tracking\progress.db
Downloads ~/.local/goanime/downloads/ ~/.local/goanime/downloads/ %USERPROFILE%\.local\goanime\downloads\
Debug logs ~/.local/share/goanime/logs/ ~/Library/Logs/GoAnime/ %LOCALAPPDATA%\GoAnime\logs\
Anime4K shaders ~/.config/goanime/anime4k-shaders/ ~/Library/Application Support/goanime/anime4k-shaders/ %APPDATA%\goanime\anime4k-shaders\
yt-dlp ~/.cache/go-ytdlp/ ~/Library/Caches/go-ytdlp/ %LOCALAPPDATA%\go-ytdlp\
Japanese font ~/.local/share/fonts/goanime/ — —

On Linux, the shader and yt-dlp folders follow XDG_CONFIG_HOME and XDG_CACHE_HOME when they are set, and the font folder follows XDG_DATA_HOME. Deleting the watch history file resets all progress. To uninstall GoAnime, remove the executable (or, with the Windows installer, uninstall it from Settings) and delete the folders above that you no longer need.

Troubleshooting

AnimeDrive search times out

AnimeDrive can take longer to answer when the site is busy. Its search uses the full source deadline, without restarting a request at the shorter HTTP client timeout. The host is also intermittently unreachable from some networks. If it still times out, point GOANIME_ANIMEDRIVE_URL at a reachable mirror, try again later, or use --source to search another source. Include a debug log when reporting the problem.

Reporting a problem

Open a bug report and attach a debug log to it:

  1. Run the same command again with --debug added, for example goanime --debug "naruto", and repeat what you did until the problem happens.

  2. When it starts, GoAnime prints the path of the log file. Each run writes a new file named goanime_<date>_<time>.log in this folder:

    System Folder
    Windows %LOCALAPPDATA%\GoAnime\logs
    macOS ~/Library/Logs/GoAnime
    Linux ~/.local/share/goanime/logs
  3. Attach the newest file to the issue, together with the output of goanime --version, your operating system and the command you ran.

The log lists the titles you searched and paths on your computer, which can include your user name. Read it before attaching if that matters to you.

mpv is not found

Make sure mpv --version works in the same terminal you run GoAnime from. On Windows, open a new terminal after installing so the updated PATH is picked up.

Japanese characters show as boxes

The Japanese beside each heading (ゴーアニメ, 検索) is drawn with the terminal's fonts. When none of them has Japanese, GoAnime hides it instead of showing boxes:

  • Linux: GoAnime installs GoAnime Glyphs, an 11 KB font with just those characters, in ~/.local/share/fonts/goanime/. Close and reopen the terminal to see them. A full Japanese font works too, such as noto-fonts-cjk on Arch Linux, fonts-noto-cjk on Debian and Ubuntu or google-noto-sans-cjk-fonts on Fedora.
  • Windows: GoAnime opens itself in Windows Terminal, which has font fallback. GOANIME_TERMINAL=conhost keeps the classic console, where the Japanese stays hidden.
  • Linux virtual console (TERM=linux): its font has no Japanese, so it stays hidden.

GOANIME_JAPANESE=1 shows it anyway, GOANIME_JAPANESE=0 hides it everywhere. The font is never installed with GOANIME_JAPANESE=0 or in the plain interface.

Using GoAnime as a library

The search and scraping code is exposed as a public Go package:

client := goanime.NewClient()
results, err := client.SearchAnime("One Piece", nil)

Search covers every source. Episode lists and stream URLs are available for AnimeFire results only for now. docs/LIBRARY_USAGE.md walks through the API, and pkg/goanime/examples has complete programs.

Contributing

Bug reports, fixes and new sources are welcome.

Most of the maintenance work in GoAnime is keeping sources working as the sites behind them change, and that is also the easiest way to start contributing: the source health workflow shows which sources are failing, and each source is a self-contained package under internal/scraper/providers. To add a new one, follow docs/ADDING_A_SOURCE.md, which uses Goyabu as the reference implementation.

To build and test:

git clone https://github.com/alvarorichard/GoAnime.git
cd GoAnime
git checkout dev
go build ./cmd/goanime
go test -short ./...

Development happens on the dev branch. Create your branch from dev and open pull requests against dev; main only receives releases. CONTRIBUTING.md lists the checks to run before opening a pull request, and docs/Development.md covers code style and the rest of the workflow.

Community

  • Discord for questions, feedback and release announcements.
  • GoAnime Mobile, the Android version.
  • goanime.online, the project website, with an overview of GoAnime and installation instructions.

Acknowledgments

GoAnime is built on the work of these projects:

  • mpv plays every stream.
  • AniSkip provides the opening timestamps.
  • AniList and Jikan, an unofficial MyAnimeList API, provide anime metadata.
  • TMDB and OMDb provide movie and TV metadata.
  • Anime4K provides the upscaling algorithm and shaders.
  • yt-dlp handles some downloads.
  • Bubble Tea, Huh and Lip Gloss build the terminal interface.
  • Noto Sans CJK is the source of GoAnime Glyphs, the Japanese font GoAnime installs on Linux (SIL Open Font License).
  • ani-cli inspired the project.

Disclaimer

GoAnime does not host, upload or distribute any media. It retrieves content that third-party websites make publicly available and is not affiliated with any of them. Users are responsible for complying with the laws of their country.

License

GoAnime is released under the MIT License.

About

Search, stream and download anime, movies and TV shows from the terminal, in English and Brazilian Portuguese.

Topics

Resources

Contributing

Stars

1.1k stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages