Git Product home page Git Product logo

nineanimator's Introduction

NineAnimator

MSAppCenter Build status Travis Build status Nightly Build Status Discord Server NineAnimator Subreddit

Swift 5.2 Platform: iOS | macCatalyst Join TestFlight License: GPL v3

A simple yet elegant way of watching anime on your favorite anime websites. NineAnimator is a free and open source anime watching app for iOS and macOS. GPLv3 Licensed.

Copyright © 2018-2020 Marcus Zhou. All rights reserved.

NineAnimator is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

NineAnimator is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with NineAnimator.  If not, see <http://www.gnu.org/licenses/>.

Table of Contents

Features

  • Ads Free and no logins
  • Super-duper clean UIs + Dark Mode
  • Get notifications when new episodes come out
  • Apple's native video playback interface
  • Picture in Picture playback on iPads/iOS 14+ devices
  • Chromecast/Google Cast with lockscreen & control center support
  • Playback History & Auto Resumes
  • Support Multiple Anime Websites
  • Integration with HomeKit
  • Discord Rich Presence integration (macOS only)
  • Handoff & Siri Shortcuts
  • Download & play episodes offline
  • Third party anime listing & tracking websites (view & edit)
  • Custom anime lists, e.g. favorites and to-watch list (currently retrieved from tracking websites; mutations are work-in-progress)

Google Cast

NineAnimator supports playing back on both AirPlay (via Apple's native media player) and Chromecast/Google Cast devices. However, not all of the steaming sources are supported on Chromecast. Check Video Sources for details.

To use Google Cast in NineAnimator, tap on the Google Cast icon on the navigation bar. A window will pop up to prompt you to select a playback device. Once the device is connected, click "Done" and select an episode from the episode list. The video will starts playing automatically on the Google Cast device.

The playback control interface will appear once the playback starts. You may use the volume up/down buttons to adjust the volume.

To disconnect from a Google Cast device, tap on the Google Cast icon on the navigation bar and tap the device that is already connected.

Picture in Picture Playback

This feature is only supported on iPads, Macs, and iOS 14+ devices.

The Picture in Picture (PiP) icon will appear on the top left corner of the player once PiP is ready. You may tap on this icon to initiate PiP playback. To restore fullscreen playback, tap the restore button on the PiP window.

Notifications & Subscription

Subscribing anime in NineAnimator is implemented with Apple's Background Application Refresh. NineAnimator will actively poll the available episodes and compares it with locally cached episodes.

To subscribe an anime, long press on the anime in the Recents category of your Library.

Or simply tap on the subscribe button when you are viewing any anime.

Smart Home Integration

NineAnimator can be configurated to run Home scenes when the playback starts and ends. The default behavior is to only run the scenes when the video is playing on external screens (e.g. Google Cast, AirPlay). However, you may change that in the Settings -> Home panel.

  • NineAnimator runs Starts Playing scene immediately after the video starts playing
  • The Ends Playing scene will be performed 15 seconds before video playback ends

See Notifications and HomeController for implementation details.

Handoff & Siri Shortcuts

NineAnimator supports Apple's handoff and Siri Shortcuts. This enables you to seemlessly switch between devices when browsing and viewing anime.

When you browse an anime, depending on the device you are using, the NineAnimator icon will show up on the dock (iPad) or the task switcher of your other devices. You may tap on the icon to continue browsing or watching on the new device.

To add a siri shortcut, navigate to the system settings app. Find NineAnimator under the root menu, tap Siri & Search, then tap Shortcuts.

Download Episodes

NineAnimator can download episodes for later playback. Tap on the cloud icon in the anime browser to initiate download tasks. Downloaded episodes will appear in the Recents tab.

There are some limitations to NineAnimator's ability to download and playback videos:

  • NineAnimator only supports downloading videos from a selection of streaming sources
  • Downloaded videos are only available to local playback. You may encounter problems playing offline episodes on AirPlay devices, and, if you are connected to a Google Cast device, NineAnimator will still attempt to fetch online resources for playback.

Screenshots

Dark Appearance

Watch Next Library Search
1 2 3
Edit Lists Choose Episodes Downloads
4 5 6
Recents Anime (iPad) Picture in Picture (iPad)
7 8
Anime Information Airing Schedule (iPad)
9 10
Browse Episodes (macOS)
11

Light Appearance

Watch Next Library Search
1 2 3
Edit Lists Choose Episodes Downloads
4 5 6
Recents Anime (iPad) Picture in Picture (iPad)
7 8
Anime Information Airing Schedule (iPad)
9 10
Browse Episodes (macOS)
11

Google Cast

Cast Playback Control Cast Playback Control (iPad)
Cast Cast on iPad

nineanimator's People

Contributors

ale-ben avatar amzd avatar andrewsb avatar apollozhu avatar awsomedude avatar bachig26 avatar bdashore3 avatar catta1997 avatar exuapplepie avatar isnackable avatar malaow3 avatar oshekharo avatar scleox avatar show37 avatar supermarcus avatar tad-swift avatar uttiya10 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nineanimator's Issues

[Feature Request] Add descriptions to each episodes

Each episode in a anime series should have a button to show the description. This will make finding certain clips from an anime much easier to find. You might be able to use Crunchyroll as they have descriptions for many animes, publicly available.

GoGoAnime search

if self.totalPages == 0 {
   Log.info("No results found")
   throw NineAnimatorError.searchError("No results found for \"\(self.title)\"")
}

Thats a bad way for checking it there is no results since when you search for One punch it will be one page with results but it will get caught as no results

https://www3.gogoanime.io/search.html?keyword=One%20Punch&page=1

What you can do is check for .items > li which should return empty if none

https://www3.gogoanime.io/search.html?keyword=adasdasd

[Feature Request] change the color of text

I’m talking about changing the color of text to a color of our liking except for just purple.
This feature allows oled dark mode to work since the text wont look off and more customizability never hurts anyone.

[BUG] Losing Reference to Alamofire Session

Having nineanimator errors
It’s takes a while to load the anime’s information and it gives this error don’t know what’s its asking clear cache and all but still doesn’t work
24AD3A0E-2032-4842-8439-9DADAC820012

WonderfulSubs - Server FA does not display subtitles

Love what you're doing and just wanted to bring this to your attention if it wasn't already. Tried both on my phone (iPhone 8 Plus 12.2) and AppleTV 4K via AirPlay. Video plays just fine but no subtitles are shown.

Example Case: Kanata no Astra/Astra Lost in Space

Any ideas?

Please make a new release on GitHub

Some people on discord are using the .ipa files on github. However, the current release is build 1, while TestFlight has build 3, so its getting kinda old. Can you make a new release?

suggestion: add tvos support

I saw that you were eager to dive into catalyst...
Since you did such a nice MVC separation maybe in the future you are willing to add another UI for tvOS :)

No way to backup downloaded videos

As someone who uses a signing service, I am often forced to uninstall and reinstall apps whenever a new update releases.
Because of this I would like to be able to somehow backup the videos I have downloaded. Maybe with a Open In option, saving to camera roll option or making the video files accessible via the built in Documents app on iOS (like VLC)

Otherwise, great job on this app, I really like it 👍

[BUG] every time I try to search for a anime on kissanime.ru/[source] nothing shows up

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Device (please complete the following information):

  • Device: [e.g. iPhone Xs Max]
  • OS: [e.g. iOS 13.3]
  • Version: [e.g. v1.2-3 or commit hash]

Crash Log

If applicable, paste the crash log inside this block.
(Goto Settings.app -> Privacy -> Analytics & Improvements -> Analytics Data to find crash logs)

Additional context
Add any other context about the problem here.

twist.moe error

An error occurs whenever I try to play or download an episode from twist.moe. The error says “Video streaming information has been corrupted”. I’m guessing it might be the encryption key that may have been updated like earlier, but I’m not sure. Been happening since around the beginning of August.

[BUG] NineAnimator doesn’t sync with MyAnimeList

  1. When long pressing an episode to mark it as “complete” or “unwatched”, NineAnimator doesn’t update MAL to reflect the changes.
  2. It seems that NineAnimator only pushes updates to MAL, but doesn’t not fetch them. This means that marking an episode as complete on MAL website will not show that change on the NineAnimator app.

Roku TV support

Hey could you add support for casting to Roku? iPhones aren’t ‘out-of-the-box’ compatible with Roku but many apps are able too. Thanks! The app is beautiful btw! 🤘🏽

[BUG] Downloads restart when reaching 99.9%

Describe the bug
Every time I try to download an episode, when it reaches 99.9% it restarts from 0% and so on again and again.
I tried different sources and servers but same issue

Version 1.2.6
BUILD 1

Problem With Casting

Hello there! It seems that mp4upload does not work for casting with chromecast. Whenever I try to cast, selecting this server since it has the best quality 1080p it loads and it freezes the TV Screen with only the NineAnimator logo. There are also some other servers that do not work, like openload, whenever you click an episode to play, it opens up the video on the screen of the phone and there is no way to cast it into the TV! Could we please ask for a fix? Is it possible? Thanks for the hard work! Best Regards, Constantine

NineAnimator cannot get passed authentication

Hi so I’m having problems where I click on an anime and the episodes don’t load it than asks me for a authentication I open it and it takes forever than gives me this network error sign it’s keeps repeating the error and I cannot change server I’ve deleted and reinstall the app clear cache downloads etc here’s a picture I would really like some help thank you
8E96FF1D-1CBD-45F0-BA14-2FF23A98BD16

[Feature Request] "Intelligent Search"

Is not a request but a suggestion, is possible to implement "intelligent search"? For intelligent I mean: if you are searching an anime in a specific source and the search will return empty the app automatically search the same thing on another source. All the source will be stetted in the settings so you can add only 2/3 sources and not search for example in the Italian source

Verystream.com

Hey verystream.com doesn’t work as a server on 9anime for example for kimetsu no yaba

[BUG] Animepahe "This episode does not exists"

  • Device: [iPhone 7 Plus]
  • OS: [iOS 13.3]
  • Version: [1.2.6 (3)]

Unable to stream episodes 481-502 of
“Detective Conan” on source Animephae, I’ve made sure if all these episodes were working or not finally concluding that all twenty-two episodes do not stream.

I’m unsure if this is only effecting these episodes, it’s possible other anime might be experiencing the same issue for that matter.

p.s
The episodes 481-502 are able to stream on Animephae’s website.

B4373D6E-E521-4C6D-B28D-CF3427E8E4EA
46625154-D924-489F-B0FA-CB4A168B9210

Darkmode into 'true black'

Add a third or replace the current 'greyish black' theme with a 'true black' one to save more battery on OLED devices.

Suggestion: no Home permission

if I go to preference --> home and hit "no" on the permission request the next time I will not have an error if I press "starts" or "ends". Error could be useful if I not remember to refused the request on past time

Apple TV App

It would be really nice if you can make a apple tv app, most people like to watch animes on tv rather than on iPhone.

P.S. NineAnimator UX/UI + user experience is really next level.

Downloading in bulk

When downloading anima in bulk, download icon sometimes doesn't indicate it is downloading the desired episode.

[BUG] Apostrophe is shown in encoded format

Describe the bug
Apostrophes shows up as &#39;

To Reproduce
Steps to reproduce the behavior:

  1. Go to Featured section of the app
  2. Scroll down until you see an anime title with an apostrophe. I’ve also attached an image:

Screenshots
757558F6-4D16-4163-833B-A1B45A6D1C2C

Tracking service issue

Tracking with Anilist.co is not working. MAL and Kitsu works fine but it’s not working with anilist.co.

Download issue

I get a error message when trying to download on my iPad Pro iOS 13.1.3

“…you don’t have permission to access com.marcuszhou.nineanimator.offlineContents“

Suggestion: Have an active save file in the new file structure/system

Make it so that it is possible to extract a file that has all the metadata of watched anime, settings, etc from the files app and move to a fresh copy of the app. (E.g. if the ignition cert invalidates)

Edit 1: the file is constantly updated so that in the event that you cannot access the app UI, there is still an up to date save file.

Edit 2: this should be possible; I can still access the file structure of the invalided iTorrent app through the files app

Free developer account not supported in newest builds

Hi, just wanted to let you know that the newest two builds use associated domains and thus require a paid developer account. It would be great if you still made it possible to build it with the free account :)
Thanks

NineAnimator issues

I’m having some problems with the app. Everytime I click on an anime for example highschool dxd, it takes forever to load the episodes and than says “there is something wrong with the URL” and sometimes also says cannot gather information or something like that. I am using the source anime ultima. If this is a bug can you please fix this ASAP or if this is a bug on my part if you will be able to tel me what’s wrong and how I can fix it I will appreciate that :3

Error issue

I’m not sure what causes this issue but every time I try to click on an episode it gives those error. The error message is JSON could not be serialized because of error: the data couldn’t be read because it isn’t in the correct format.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.