GoAnime

alvarorichardMIT活跃维护

在终端里搜索、在线播放和下载动漫、电影与剧集,支持英语和巴西葡萄牙语,适合喜欢命令行追番的用户。

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

v2.0.0发布于 2026-10-28 06:28 UTC1,157star +2 / 7 天62fork同步于 2026-11-10 23:50 UTC

怎么上手

由 README 提炼,执行前请确认
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/
硬件要求按 README 说明

README 未说明具体硬件要求;播放依赖 mpv,实时 Anime4K 超分对 GPU 有要求(README 提到从弱 GPU 的 Performance 模式到 SD 源的 Ultra 模式)。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

终端里搜索、播放和下载动漫影视,支持英语和巴西葡萄牙语

在终端里搜索、在线播放和下载动漫、电影与剧集,支持英语和巴西葡萄牙语,适合喜欢命令行追番的用户。

核心能力

  • 并行搜索所有已启用源,失败时自动回退到其他源
  • 支持英语和葡萄牙语的字幕版和配音版动漫,以及葡萄牙语电影和电视剧
  • 用 mpv 播放并可选画质,支持下载单集、区间或整季
  • 下载文件按 Plex 兼容命名保存,如 Anime - S01E01.mp4
  • 记录播放进度和已看集数,支持从上次位置继续播放

容易踩的坑

播放前需先安装 mpv,Windows 安装包已内置 mpv 而便携 ZIP 不含;从源码构建时进度跟踪依赖 SQLite 和 CGO,没有 C 编译器仍可运行但不记录进度;部分流下载依赖 yt-dlp,首次需要时 GoAnime 会自动下载。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.0.0
  1. v2.0.0GoAnime v2.0.0最新正式版2026-10-28 · 2026-10-28 06:28 UTC

    GoAnime Release Notes - Version 2.0.0

    Release date: 2026-10-28

    Highlights

    • 157 commits since 1.8.7 (2026-09-14), by 6 contributors: 613 files changed, +75,280 / −31,255 lines. 331 of those files are tests: the unit, cascade and mutation tests added around each source are what let this many providers move at once.
    • StartFlix replaces SuperFlix, and GoAnime ships no browser anymore. SuperFlix and its Playwright/Cloudflare-bypass stack are gone (playwright-go left go.mod). Movies and TV now come from StartFlix, TopCine and Pobreflix over plain HTTP, with an id-keyed vidsrc/2Embed fallback for titles whose panel players are dead.
    • Four new sources: TopCine, Pobreflix, AnimeDrive and AnimesDigital, and HiAnime replaces the dead anidb.app. AnimeFire is read through its JSON API. Goyabu is opt-in while Cloudflare gates it.
    • Updates are verified: --update checks every download against the release's SHA-256 manifest, and the manifest itself is signed with minisign (the public key is embedded in the binary), so a compromised release cannot swap a binary and its checksum together. A build with no key refuses every update.
    • Windows is a first-class platform: standalone launches reopen in Windows Terminal (installed or unpacked from a copy embedded in the exe when missing), the installer is per-user and needs no administrator, the exe has a real icon, and Japanese glosses render without boxes.
    • Pobreflix survives its own redesign: on 2026-10-27 every page started pointing at a Turnstile-gated player. GoAnime no longer hands that challenge page to mpv; it takes the fallbacks and says why the Portuguese dub cannot play.
    • New terminal identity: the TUI, downloads and upscales draw the goanime.online look; the details panel fills from what each source reports.
    • The module is now github.com/alvarorichard/Goanime/v2 (see Breaking Changes).

    Breaking Changes

    • The Go module path is now github.com/alvarorichard/Goanime/v2. Go requires the /v2 suffix for a v2 module, so a v2.0.0 tag without it would break go install and leave @latest on 1.8.7. Library users must update imports from github.com/alvarorichard/Goanime/pkg/goanime to github.com/alvarorichard/Goanime/v2/pkg/goanime, and source installs become go install github.com/alvarorichard/Goanime/v2/cmd/goanime@latest. The v1 module stays available at the old path for existing consumers.
    • SuperFlix was removed. --source superflix, --sf-window, --sf-offscreen and the GOANIME_SF_* variables no longer exist. Use --source startflix, topcine or pobreflix, or --source movietv for all movie/TV sources.
    • anidb.app was replaced by HiAnime. --source anidb is still accepted and means HiAnime; GOANIME_ANIDB_LANG is replaced by GOANIME_HIANIME_AUDIO.
    • Goyabu is off by default. Its Cloudflare gate cannot be passed without a browser; GOANIME_ENABLED_SOURCES=goyabu turns it on where Cloudflare does not challenge.
    • --update refuses a release it cannot verify: a release without checksums-sha256.txt and its .minisig signature is not installed.

    Features

    Sources

    • StartFlix (startflix.biz) is the movie/TV source, replacing SuperFlix. Its panel plays Byse/Filemoon hosts over plain HTTP; downloads are named after the official English title, found keylessly; the best quality on offer is always picked; dead movie panels are tracked and filtered from later searches.
    • Abyss playback through a local stream proxy, with chunked fetching, a shared part cache with per-reader read-ahead, stale-fetch cancellation, and recovery of truncated file tails (a movie no longer stalls at 99%).
    • TopCine (topcine3.site) is a movie/TV source next to StartFlix, played through the panel by TMDB/IMDb id.
    • Pobreflix (pobreflixtv.gay): search asks the site's /api catalog first (the real name and slug) and falls back to the sitemap corpus. Current /filme/, /serie/ and `/a
  2. v1.8.7GoAnime v1.8.72026-09-15 · 2026-09-15 00:15 UTC
    查看更新说明

    GoAnime Release Notes - Version 1.8.7

    Release date: 2026-09-14

    Highlights

    • SuperFlix survives domain rotations without a new release: SuperFlix moved its domain five times since 1.8.6 (.pro → .sbs → .beer → .baby → .monster), and every move used to break playback until a new version shipped. GoAnime now finds the live host on its own, through independent layers that cover each other's failures: a manual pin, the last host that worked (remembered on disk), every alias ever observed (walked concurrently), and — only when all of those fail — a one-line pointer in this repository that maintainers can update to repair installed copies without a release. Fixes #199.
    • SuperFlix plays again, end to end: the player CDN, signing endpoint, server picker and embed markup all changed. Streams, series, movies and Blogger-hosted titles resolve and play in mpv again.
    • Movies no longer hang before mpv opens: remote subtitle tracks forced through the HLS demuxer kept mpv stalled for over two minutes. The same tracks are embedded in the stream, so nothing is lost.
    • SuperFlix downloads work again: current playlist URLs were being sent to the plain MP4 downloader, which saved the playlist text as the episode file.
    • Much faster repeat plays: replaying an episode now skips the browser entirely. Measured during development: a cached replay went from ~6.8 s to under 200 ms, and a cold resolve from ~19 s to ~8 s.
    • The bypass browser stays out of your way: it starts minimized and only surfaces when the Cloudflare check actually needs you.
    • New AniDB source, and AllAnime has been removed (see Breaking Changes).
    • Metadata survives an AniList outage: when AniList disables its API, GoAnime says so plainly and falls back to MyAnimeList.

    Breaking Changes

    • AllAnime was removed as a source. --source allanime now fails as an unknown source, and the --allanime-smart flag no longer exists. Use --source anidb, animefire, goyabu or superflix, or omit --source to search all of them.

    Features

    SuperFlix

    • Layered host discovery resolves the live domain at runtime, in order:
      1. GOANIME_SF_HOST — manual pin, no network.
      2. The last host that verified, remembered in the user cache directory.
      3. Every SuperFlix alias ever observed, walked concurrently; the first live one wins, so a dead alias costs its own slot instead of the whole budget.
      4. The repository pointer superflix-host.txt, read only when every alias above has failed — a normal launch never contacts GitHub.
      5. The compiled default, now superflixapi.monster.
    • Smart offscreen solver (on by default): the Cloudflare bypass browser starts minimized and is brought on screen only when the challenge needs a human — when Cloudflare reports a load failure or the check stops clearing — then closes when the solve ends. --sf-window restores the always-visible window.
    • Challenge retry: when the Turnstile widget fails to load ("Não foi possível carregar a verificação"), the solver presses the page's own retry control instead of waiting out its timeout.
    • Browser-free re-signing through the player's current /layer/ endpoint, which replaced the retired getVideo endpoint. The legacy endpoint remains as a fallback.
    • Signed stream URLs are cached with the Referer and User-Agent they are bound to, and verified with a single probe before reuse.
    • Blogger-hosted titles are recognized and handed to the Blogger playback path instead of being treated as a FirePlayer host.

    Sources

    • AniDB source (anidb.app): search, episode listing and stream resolution, included in the daily source-health checks. GOANIME_ANIDB_LANG selects subtitled (jpn/sub, default) or dubbed (eng/dub) releases.

    Metadata

    • AniList outage handling: when AniList answers with its "API temporarily disabled" notice, the lookup
  3. v1.8.6GoAnime v1.8.62026-07-25 · 2026-07-25 00:17 UTC
    查看更新说明

    GoAnime Release Notes - Version 1.8.6

    Release date: 2026-07-24

    Highlights

    • Source Registry Architecture (Model C): Sources are now self-describing. Each provider implements source.Source with a Describe() descriptor, and video/episode resolution dispatches through a registry instead of hardcoded branching. New optional capability interfaces — Seasoned (season-aware sources) and BrowserGated (sources needing a browser warm-up) — let the dispatcher adapt per source without special-casing call sites.
    • Scraper Package Restructure: internal/scraper split into internal/scraper/netx (transport, SSRF guard, diagnostics, circuit breaker) and internal/scraper/providers/{allanime,animefire,goyabu,superflix}. The monolithic unified.go/media_manager.go pair was replaced by manager.go with lazy, sync.Once-guarded adapter loading. Public API preserved.
    • SuperFlix Revival with Headless Turnstile Auto-Solver: SuperFlix is back and fully automatic. A Playwright-driven solver clears Cloudflare managed challenges with zero human interaction, backed by a stream cache, a dedicated transport with Retry-After handling, TVmaze episode mapping, and next-episode prefetching.
    • AllAnime Dynamic Key Derivation: The AllAnime client no longer relies on a static key. It derives the AES key per epoch from the referer page (epoch + partB) masked against the entry bundle, and caches it — used for both the aaReq token and the tobeparsed blob.
    • Concurrent Multi-Source Search: Search now fans out across all enabled sources in parallel with error tolerance — a dead source degrades the result set instead of failing the query.
    • Manual Source Kill-Switch: GOANIME_DISABLED_SOURCES / GOANIME_ENABLED_SOURCES turn sources off or on without a rebuild, complementing the automatic per-source circuit breaker.
    • New TUI Layer: Native anime-results screen, item picker, shell and theme, plus Windows ANSI/VT processing and color-profile detection.
    • Dependency & Toolchain Refresh: Go 1.26.5, Playwright migrated to mxschmitt/playwright-go, and project-wide dependency bumps (see Dependencies).
    • CI Hardening: CodeQL scanning, Dependabot, and a daily live source-health workflow added; the standalone coverage workflow was folded into ci.yml with a hard 66.0% coverage gate.

    Features

    Architecture & Sources

    • Introduce internal/api/source with the Source interface, Descriptor struct, and resolution logic that prioritizes explicit source fields, media types, tags, and URL patterns.
    • Migrate AllAnime, AnimeFire, Goyabu and SuperFlix to the self-describing model; registration supports both legacy and new paths during the phased migration, guarded by anti-drift tests.
    • Add Seasoned and BrowserGated capability interfaces; browser-gated sources are warmed up (WarmUp) before a video URL is fetched.
    • Add internal/api/providers/dispatch with FetchEpisodes and FetchStreamURL, routing episode and stream retrieval through the registry.
    • Add result tagging (internal/api/providers/tagging.go): language tagging and source identification on search results.
    • Implement concurrent search across multiple sources with per-source error tolerance.
    • Add manual source kill-switch (internal/util/source_toggle.go), parsed in the leaf util package so both the dispatch and search layers honor it without an import cycle.
    • Add strict-source handling (GOANIME_STRICT_SOURCE) and URL-only resolution for video URL retrieval.
    • Add internal/api/source/enablement.go and capabilities.go with dedicated tests.

    SuperFlix

    • Headless Cloudflare Turnstile auto-solver driven by Playwright (browser.go, cf.go), with configurable behavior via GOANIME_SF_HEADLESS, GOANIME_SF_BUNDLED, GOANIME_SF_CHROME_CHANNEL and GOANIME_SF_MASK.
    • Stream cache with CDN liveness probing (streamcache.go), dedicated HTTP transport honoring Retry-After (transport.go), and TVmaze episode mapp
  4. v1.8.5GoAnime v1.8.52026-05-20 · 2026-05-20 05:03 UTC
    查看更新说明

    GoAnime Release Notes - Version 1.8.5

    Release date: 2026-05-20

    Highlights

    • Go 1.26.3 Toolchain: Project upgraded to Go 1.26.3. Updated all dependencies to latest compatible versions, including enetx/surf and quic-go.
    • SuperFlix Host Migration: SuperFlix references updated from superflixapi.online to superflixapi.best. The previous .online host began returning 5xx errors; .best is now the canonical endpoint.
    • SFlix Source Removed: SFlix integration deleted entirely (previously disabled). Dead provider code and associated tests purged.
    • Media Manager & Scraper Restructure: Internal media manager and scraper layout refactored for cleaner provider separation. Public API preserved (no breaking changes).
    • Major Test Coverage Push: Phases 1–14 implemented; coverage raised to 52.8%. Phases 15–17 still in progress, targeting the remaining 165 functions at 0% across api, util, playback, handlers, discord, upscaler, updater, scraper, providers, downloader, and SDK.
    • Windows CI Stability: Interactive fuzzy-finder tests now skip in CI environments without TTY. Resolves persistent 10-minute deadlocks on windows-latest runners caused by tcell winTty.getConsoleInput syscall blocking.

    Features

    • Upgrade Go toolchain to 1.26.3; bump module dependencies project-wide.
    • Update enetx/surf and quic-go to latest releases.
    • Add comprehensive unit tests for scraper provider lookup, episode resolution, and upscaler pipeline (internal/scraper, internal/upscaler).
    • Add player functionality tests: streaming flow, progress aggregation across episodes, error-path coverage (internal/player).
    • Add unit tests for movie/provider entry points and media-type routing (internal/scraper/providers).
    • Add Discord manager and handler tests: presence updates, rich-presence formatting, lifecycle (internal/discord).
    • Implement Phases 11–14 of the test plan: every targeted exported and unexported function in those phases now has a dedicated test.
    • Phases 15–17 in progress: tests being added for api + util, then playback + handlers + discord + upscaler + updater, then scraper + providers + downloader + SDK.

    Bug Fixes

    • Critical: Update SuperFlix host references from superflixapi.online to superflixapi.best. The .online host began failing; .best is the new canonical endpoint. Applied across scraper code, tests, and fixtures.
    • Fix Windows CI deadlock in TestHandleUpscaleFromMenu_DoesNotPanic, TestAskForDownload_ReturnsValidMarker, TestAskForPlayOffline_DoesNotPanic, and sibling interactive tests: each guard with if os.Getenv("CI") != "" { t.Skip("Skipping interactive fuzzy-finder test in CI (no TTY available)") }. Root cause: tcell winTty.getConsoleInput syscall blocks indefinitely without a console, hitting the 10-minute package timeout.
    • Fix TestSanitizeMediaTarget/plain_path_cleaned on Windows: wrap expected path in filepath.FromSlash(...) so OS-native separators match filepath.Clean output.
    • Fix global progress tracker cleanup order in CI to prevent intermittent races between teardown and lingering goroutines.

    Improvements

    • Remove SFlix scraper, provider registration, and all associated tests. Dead code purged.
    • Refactor media manager and scraper directory layout: cleaner separation of provider concerns; internal types reorganized without changing the public surface.
    • Tighten interactive-test contract: tests that invoke tui.Find now check os.Getenv("CI") and skip when no TTY is attached, instead of relying on host-OS error behavior.
    • Update go.mod/go.sum for upgraded toolchain and dependency bumps (enetx/surf, quic-go, transitive updates).
    • Phases 1–14 implemented; Phases 15–17 underway, targeting the remaining 165 functions at 0%.


    Installation

    Linux / macOS
    # Download the binary for your platform
    curl -LO https://github.com/alvarorichard/Goanime/releases/do
    
  5. v1.8.4GoAnime v1.8.42026-05-03 · 2026-05-03 04:08 UTC
    查看更新说明

    GoAnime Release Notes - Version 1.8.4

    Release date: 2026-05-03

    Highlights

    • SuperFlix API Migration: Migrated SuperFlix endpoint from superflixapi.rest (deprecated) to superflixapi.online (canonical). The legacy host performs a 301 redirect, but Go's HTTP Client downgrades POST to GET, breaking requests. Updated across all code and tests.
    • SuperFlix Content Filtering: Implemented episode filtering by air date, removing episodes with missing, "null", or future air dates. This resolves issues where placeholder episodes appeared without available sources.
    • SuperFlix Error Handling Improvements: Implemented ensureJSONResponse() to detect HTML or non-2xx responses and produce clear error messages instead of cryptic "invalid character '<'". Now performs body-sniffing instead of relying solely on Content-Type header.
    • Temporarily Disabled Sources: FlixHQ, SFlix, and 9Anime commented out until fixes are implemented. AnimeDrive also temporarily disabled.
    • Conditional Logic Refactoring: Replacement of complex if-else chains with switch statements for improved readability and maintainability across the codebase.
    • Version Bumped: Updated to 1.8.4 with automatic normalization of the "v" prefix in CI workflows.

    Features

    • Migrate SuperFlix API endpoint to canonical superflixapi.online host.
    • Add content filtering for SuperFlix episodes: remove episodes with empty, "null", or future air dates.
    • Implement ensureJSONResponse() helper for clear detection of HTTP/HTML errors in SuperFlix APIs.
    • Refactor conditional chains across multiple files: replace nested if-else with switch statements for improved readability.
    • Add support for non-UTC timezones in SuperFlix episode filtering (normalizes to UTC internally).
    • Version normalization: automatic TrimPrefix("v") in CI builds to avoid "vv1.8.4" in outputs.

    Bug Fixes

    • Critical: Fix SuperFlix API host migration: update from superflixapi.rest to superflixapi.online. The 301 redirect from the legacy host downgrades POST to GET, breaking /player/bootstrap. Legacy code received HTML 404 and failed with "invalid character '<' looking for beginning of value".
    • Critical: Fix SuperFlix episode filtering: placeholder episodes with air_date: null or air_date: "" are now removed before returning to the user. Episodes with future air dates are also filtered. This resolves issues where users saw "no servers available" for episodes that haven't yet been released.
    • Fix SuperFlix error messages: implement ensureJSONResponse() to detect HTML or non-2xx status codes and produce clear messages instead of "invalid character '<'". Logs now indicate the endpoint, status code, and final URL for diagnosis.
    • Fix SuperFlix air_date timezone handling: filtering now uses UTC internally, preventing leakage of tomorrow's episodes in timezones west of UTC.
    • Temporarily disable FlixHQ, SFlix, and 9Anime source providers until fixes are ready. Sources commented out with /* */ blocks in provider registry.
    • Temporarily disable AnimeDrive scraper until Cloudflare bypass is implemented.
    • Fix version normalization: strip leading "v" from injected CI version string to avoid "vv1.8.4" in outputs.
    • Refactor logging: replace log.Fatalln() with util.Errorf() in error handlers of main.go, improving graceful shutdown.
    • Remove Nix configuration files (default.nix, flake.nix, flake.lock, gomod2nix.toml) from repository.

    Improvements

    • Refactor conditional logic: replace if-else chains with switch statements across multiple modules (allanime_enhanced.go, player.go, playvideo.go, scraper.go, download.go, appflow/anime_data.go, util/util.go, util/perf.go, scraper/flixhq.go, scraper/sflix.go, scraper/superflix.go) for improved readability and maintainability.
    • Add helper function filterEpisodesByAirDate() in SuperFlix scraper to centralize episode date filtering logic.
    • Improve SuperFlix error diagnostics: enrich error messa

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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.

    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 withUpdate 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 ZIPgoanime --update
    AURYour AUR helper, for example yay -Syu
    A release binary or archivegoanime --update
    go installThe 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

    KeyAction
    ↑ ↓ or k jMove
    Type, or /Filter the list
    g GFirst or last item
    EnterSelect
    EscGo back
    tabSwitch search scope (search home)
    ← →Choose a version (results)
    r e xFrom start, episodes, remove (Continue list)
    d D A mDownload 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:

    KeyOptionWhat it does
    nNext episodePlay the next episode
    pPrevious episodePlay the previous episode
    eSelect episodePick another episode from the list
    cChange animeSearch for another title
    sSkip introJump past the opening, when AniSkip has its timestamps
    aAudio trackSwitch the audio track, when there is more than one
    tSubtitlesSwitch or turn off subtitles, when there are any
    Esc← BackReturn to the download and playback menu
    qExitClose 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

    SourceContentLanguageNotes
    HiAnimeAnimeEnglish, subbed and dubbedSubbed by default
    AnimeFireAnimePortuguese (Brazil)
    AnimesDigitalAnimePortuguese (Brazil)Subtitled and dubbed
    AnimeDriveAnimePortuguese (Brazil)Host override: GOANIME_ANIMEDRIVE_URL
    GoyabuAnimePortuguese (Brazil)Disabled by default, see below
    StartFlixMovies, TVPortuguese (Brazil)Dubbed and subtitled
    TopCineMovies, TVPortuguese (Brazil)Catalog only; playback goes through StartFlix
    PobreflixMovies, TVPortuguese (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:

    VariableDescription
    GOANIME_ENABLED_SOURCESComma-separated sources to enable, such as goyabu
    GOANIME_DISABLED_SOURCESComma-separated sources to skip
    GOANIME_THEMEdark, light or auto (default): auto asks the terminal once for its background
    GOANIME_TERMINALconhost keeps Windows GoAnime in the classic console instead of reopening it in Windows Terminal
    GOANIME_PLAINSet to 1 for the plain interface: no colors, no Japanese glosses, ASCII only (same as --plain, NO_COLOR or TERM=dumb)
    GOANIME_JAPANESE1 always shows the Japanese glosses, 0 always hides them; unset, GoAnime shows them where the terminal has a font for them
    GOANIME_HIANIME_AUDIOsub (default) or dub
    GOANIME_STRICT_SOURCESet to 1 to report an error instead of guessing an unknown source
    GOANIME_ANIMEFIRE_APIAddress of the AnimeFire API
    GOANIME_ANIMEDRIVE_URLAddress of AnimeDrive
    GOANIME_POBREFLIX_URLAddress of Pobreflix
    GOANIME_STARTFLIX_URLAddress of StartFlix
    GOANIME_STARTFLIX_PANEL_URLAddress of the StartFlix video panel
    GOANIME_TOPCINE_URLAddress of TopCine
    TMDB_API_KEYA TMDB key for movie, TV and season details
    OMDB_API_KEYAn 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

    WhatLinuxmacOSWindows
    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:

      SystemFolder
      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.