{"id":21441625,"url":"https://github.com/atreyagaurav/anime-helper-shell","last_synced_at":"2025-10-07T01:26:12.802Z","repository":{"id":43751429,"uuid":"321017256","full_name":"Atreyagaurav/anime-helper-shell","owner":"Atreyagaurav","description":"A python shell for searching, watching, and downloading anime. ","archived":false,"fork":false,"pushed_at":"2022-10-27T02:20:16.000Z","size":1641,"stargazers_count":26,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-14T04:37:34.420Z","etag":null,"topics":["anime","cli","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Atreyagaurav.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-13T08:23:28.000Z","updated_at":"2025-03-09T11:02:48.000Z","dependencies_parsed_at":"2022-09-21T19:21:08.821Z","dependency_job_id":null,"html_url":"https://github.com/Atreyagaurav/anime-helper-shell","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Atreyagaurav/anime-helper-shell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atreyagaurav%2Fanime-helper-shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atreyagaurav%2Fanime-helper-shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atreyagaurav%2Fanime-helper-shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atreyagaurav%2Fanime-helper-shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Atreyagaurav","download_url":"https://codeload.github.com/Atreyagaurav/anime-helper-shell/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atreyagaurav%2Fanime-helper-shell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278708046,"owners_count":26031932,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anime","cli","python"],"created_at":"2024-11-23T01:39:15.290Z","updated_at":"2025-10-07T01:26:12.771Z","avatar_url":"https://github.com/Atreyagaurav.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"* Anime Helper Shell [play/stream/download temporarily fixed]\n\nSince I was tired of searching for different websites and different animes to watch. And wanted my player to remember what I watched without having to depend on yet another website.\n\nI created this solution. It's not super useful, or the best, but it works fine for me.\n\n\n* NOTE:\n  It may stop working all of a sudden one day if the site goes down, so I can't guarantee till when it'll work.\n\n  In such cases:\n  \n  ~play~, ~download~, ~continue~ commands won't work because of changes in the gogoanime website which was the only source for now. You can try to fix it by changing the website link in ~sources/gogoanime.py~ file or some other logic in that module. \n\n  I have added a ~web~ \u0026 ~webcontinue~ command to browse the episode page and watch it in the browser in such cases.\n\n  If I find some other sources which are easier to get the videos from I'll update it.\n\n  I also found recently another CLI interface known as [[https://github.com/pystardust/ani-cli][ani-cli]] that has the functionality of ~play~ and ~download~ commands from here (probably more), and have used a small script from there to patch the problem for now, but it might not last long without other people to contribute. My understanding of networking is pretty low so I can't always track down how to reach the source videos to stream.\n\n* Disclaimer\nI do not own the videos or the right to distribute the videos which can be accessed through this program. It is just a helper program created for personal purposes and is like a terminal api for gogoanime site to ease the access as well as add the functionality of recording the watched animes and updates.\n\n* Installation (Linux \u0026 Mac OS)\nClone this repository. \n#+begin_src bash\ngit clone https://github.com/Atreyagaurav/anime-helper-shell.git \u0026\u0026 cd anime-helper-shell\n#+end_src\n\nInstall the requirements.\n\n#+begin_src bash\npip install -r requirements.txt\n#+end_src\n\nMake the ~ggshell.py~ executable and then symlink it to ~/usr/local/bin~ or other ~bin~ directory. \n#+begin_src bash\nchmod +x ggshell.py\nln -s \u003cfull path to ggshell.py\u003e /usr/local/bin/ggshell.py\n#+end_src\n\nIf the anime folder doesn't already exist in your home directory \"~/\" then create one, and move the shell.conf file into there.\n#+begin_src bash\nmkdir ~/anime\n#+end_src\n\n#+begin_src bash\ncp shell.conf ~/anime\n#+end_src\n\n\nBe sure to edit the ~config.py~ to change the ~ext_media_command~ variable if you use other players than ~mpv~, and change the ~anime_dir~ to the place you want to store your anime.\n\nBy defaults it makes ~anime~ directory in your home and stores it there.\nYou can symlink your anime storage directory to home too. \n\n* Usages\n** Supported devices\nTill now it works on (tested only on these; can probably work on others too):\n\nArch Linux; Windows 10 \u0026 Termux android app.\n\nBut the notify command doesn't work on windows and termux because of issue with availability of dbus. \n\n** Basic Usages\n- Watch anime from online stream\n- Download anime for offline watch\n- Search anime from keywords\n- Automatic/manual record list of watched anime\n- Continue from where you left off (episode wise not time of the episode)\n- Keep track of ongoing anime\n\n- Other utilities:\n * get notification on updates (notify command - UNIX only)\n * use shell commands with ! (e.g. !clear)\n\n** Usage instructions\nSome examples are on [[*Screenshots][Screenshots]] section.\n\nAssuming you have symlinked the ~ggshell.py~ to ~/use/bin/gogoanime~. Look at [[*Installation][Installation]] for more detail on this.\n\nFor interactive shell, run ~python ggshell.py~, or ~ggshell.py~ (if you made it executable), or ~gogoanime~ (if you symlinked to this name).\n\nAfter that you can enter the commands in the shell; type ~help~ on overall help, and ~help command~ for specific help on some command. The help is not that detailed for each command for now, but I have tried to write what the command does.\n\nTo run shell commands like ~clear~ use ~shell command~ syntax or ~!command~ syntax, where the command is the shell command you want to execute. (not tested in windows).\n\nFor single use pass the command \u0026 arguments as command line arguments:\n#+begin_src bash\ngogoanime play one-piece\n#+end_src\n** Interactive shell\n*** inputs\nThe interactive shell is written in python and [[https://www.man7.org/linux/man-pages/man3/readline.3.html][readline]] is used to get the input, hence supports emacs like keybindings. like C-r for reverse search of commands, and others, look at readline manual for other info on this. ~!man readline~ on interactive shell or ~man readline~ on bash.\n\n*** Autocomplete\nAuto-Completion is supported but it used the log list and cache list (previous search result) for completion of most commands so at the beginning there won't be much. Try searching animes then using the \u003cTAB\u003e key to autocomplete. As you use more and enter the animes on logs the autocomplete becomes more usable.\n\nAutocomplete for commands like help/ fullscreen/ quality etc doesn't depend on those so are usable from the start. \n\n** Debug Shell for developers\nIf you are familiar with python, now only can you edit the code, you can also use the debug shell to test the code, the history won't be updated on this shell. You can use it just like python REPL but has the necessary modules preloaded for debugging purposes. \n\nYou can use the ~shell~ command or ~!~ at the beginning to run that command in ggshell but unlike there you can look at the error and analyze the problem here.\n\nThis is still a prototype so it isn't very good. \n\n** Mpv Plugin\nThere is a cfiles folder with c codes for mpv plugin and status checking program, both can be compiled with ~make~ and installed with ~make install~.\nJust update the path macros on the C files and then compile with make (I don't know how to make that automatic with make right now - help will be appreciated.)\n\nThere are some scripts in ~extras~ folders, which can be used to visualize the log from these plugins.\n\nThe ~process.py~ processes the log and ~visualize.py~ is for visualization. Here is an example plots.\n\n[[./extras/plot.png]]\n\nThe gaps in the plot with no anime watchtime isn't me being responsible but rather the time it was broke and I was watching it in the browser. \n\n* Known Bugs\n- Sometimes the input has residue texts from long command lines.\n- Sometimes the mpv can't stream the stream link obtained with 403: Forbidden error.\n- The quality selection doesn't work unless the upstream provides m3u8 file.\n- Debug shell is a prototype and has glitches.\n* Future plans\n- Quality selection\n- Import watched logs from myanimelist.(dropped)\n- Choose the source for the video\n* Screenshots\n\nLatest episode updates from home page:\n\n~NEW~ and ~WATCHED~ tags are shown for animes on the tracklist.\n\n[[./screenshots/recent.png]]\n\nSearching and getting info on anime:\n\n[[./screenshots/info.png]]\n\ngetting info from search list.\n\n[[./screenshots/number.png]]\n\n\nWatching anime:\n\n[[./screenshots/watch.png]]\n\nLogs on watched anime/episodes:\n\n[[./screenshots/log.png]]\n\n\nAdjustments:\nGeometry and fullscreen for player. Quality for stream/download.\n\n[[./screenshots/others.png]]\n\nTracking an anime, and getting updates:\n\n[[./screenshots/track.png]]\n\nCommands history:\n\nYou can use UP arrow key to get old commands, or use Ctrl+r to do reverse search (not tested in windows).\n\n[[./screenshots/history.png]]\n\nhelp command:\n\n[[./screenshots/help1.png]]\n\n[[./screenshots/help2.png]]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatreyagaurav%2Fanime-helper-shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatreyagaurav%2Fanime-helper-shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatreyagaurav%2Fanime-helper-shell/lists"}