Git Product home page Git Product logo

anidl / multi-downloader-nx Goto Github PK

View Code? Open in Web Editor NEW
210.0 11.0 37.0 5.47 MB

Downloader for Crunchyroll, Hidive, AnimeOnegai, and AnimationDigitalNetwork with CLI and GUI

License: MIT License

Batchfile 0.01% TypeScript 99.55% HTML 0.05% CSS 0.02% Dockerfile 0.12% JavaScript 0.26%
downloader crunchyroll crunchyroll-downloader hidive hidive-downloader download adn animationdigitalnetwork anime-downloader animeonegai

multi-downloader-nx's Introduction

Anime Downloader NX by AniDL

Discord Shield

This downloader can download anime from different sites. Currently supported are Crunchyroll, Hidive, AnimeOnegai, and AnimationDigitalNetwork.

Legal Warning

This application is not endorsed by or affiliated with Crunchyroll, Hidive, AnimeOnegai, or AnimationDigitalNetwork. This application enables you to download videos for offline viewing which may be forbidden by law in your country. The usage of this application may also cause a violation of the Terms of Service between you and the stream provider. This tool is not responsible for your actions; please make an informed decision before using this application.

Dependencies

Paths Configuration

By default this application uses the following paths to programs (main executables):

  • ffmpeg.exe (From PATH)
  • ffprobe.exe (From PATH)
  • mkvmerge.exe (From PATH)
  • mp4decrypt.exe (From PATH)

To change these paths you need to edit bin-path.yml in ./config/ directory.

CLI Information

See the documentation for a complete list of what options are available. You can define defaults for the commands by editing the cli-defaults.yml file in the ./config/ directory.

Example usage

Logging in

Most services require you to be logged in, in order to download from, an example of how you would login is:

AniDL --service {ServiceName} --auth

Searching

In order to find the IDs to download, you can search from each service by using the --search flag like this:

AniDL --service {ServiceName} --search {SearchTerm}

Downloading

Once you have the ID which you can obtain from using the search or other means, you are ready to download, which you can do like this:

AniDL --service {ServiceName} -s {SeasonID} -e {EpisodeNumber}

Building and running from source

Build Dependencies

Dependencies that are only required for running from code. These are not required if you are using the prebuilt binaries.

Build Setup

Please note that NodeJS, NPM, and PNPM must be installed on your system. For instructions on how to install pnpm, check (https://pnpm.io/installation)

First clone this repo git clone https://github.com/anidl/multi-downloader-nx.git.

cd into the cloned directory and run pnpm i. Next, decide if you want to package the application, build the code, or run from typescript.

Run from TypeScript

You can run the code from native TypeScript, this requires ts-node which you can install with pnpm with the following command: pnpm -g i ts-node

Afterwords, you can run the application like this:

  • CLI: ts-node -T ./index.ts --help

Run as JavaScript

If you want to build the application into JavaScript code to run, you can do that as well like this:

  • CLI: pnpm run prebuild-cli
  • GUI: pnpm run prebuild-gui

Then you can cd into the lib folder and you will be able to run the CLI or GUI as follows:

  • CLI: node ./index.js --help
  • GUI: node ./gui.js

Build the application into an executable

If you want to package the application, run pnpm run build-{platform}-{type} where {platform} is the operating system (currently the choices are windows, linux, macos, alpine, android, and arm) and {type} is cli or gui.

DRM Decryption

Decryption Requirements

Instructions

In order to decrypt DRM content, you will need to have a dumped CDM, after that you will need to place the CDM files (device_client_id_blob and device_private_key) into the ./widevine/ directory. For legal reasons we do not include the CDM with the software, and you will have to source one yourself.

multi-downloader-nx's People

Contributors

acc029 avatar anidl-git avatar anidlsupport avatar animedl avatar arisudesu avatar darek0n avatar denoder avatar dependabot[bot] avatar edward8e avatar ioni0 avatar izu-co avatar jakeguy11 avatar metaljerk avatar nicknakin avatar orywarekyrie avatar oujiii avatar oxixes avatar ravensrain avatar strat4tr avatar subdiox 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

multi-downloader-nx's Issues

[BUG] TypeError: Cannot read property '1' of null (Funimation Changed Their Streams/API)

** Main info: **

Script version: 4.7.0-beta.2
Show ID: 1394901
Episode ID: 5

** Additional Info: **

i think funimation changed their playlist data again...

[#1394901] Vivy -Fluorite Eye's Song- (2021)
[0001] Vivy -Fluorite Eye's Song- - #01 My Code – To Make Everyone Happy With My Singing (00:26:11) [HD1080, Japanese]
[0002] Vivy -Fluorite Eye's Song- - #02 Quarter Note – The Beginning of the One Hundred-Year Journey (00:22:44) [HD1080, Japanese]
[0003] Vivy -Fluorite Eye's Song- - #03 A Tender Moon Tempo - A Pleasant Chat with the Stars (23:39) [HD1080, Japanese]
[0004] Vivy -Fluorite Eye's Song- - #04 Ensemble for Polaris - Our Promise (00:00:01) [HD1080, Japanese]
[0005] Vivy -Fluorite Eye's Song- - #05 Sing My Pleasure - To Make You Smile (00:23:40) [HD1080, Japanese] (selected)

[INFO] Selected Episodes: 0005

[INFO] Vivy -Fluorite Eye's Song- - S1E05 - Sing My Pleasure - To Make You Smile
[INFO] Available streams (Non-Encrypted):
[#1449163] Japanese [Simulcast] (selected)
/Users/Admin/Apps/Animie/anidl/funimation-downloader-nx/funi.js:413
        let plLayerId = parseInt(s.uri.match(/_Layer(\d+)\.m3u8/)[1]);
                                                                 ^

TypeError: Cannot read property '1' of null
    at downloadStreams (/Users/Admin/Apps/Animie/anidl/funimation-downloader-nx/funi.js:413:66)
    at processTicksAndRejections (node:internal/process/task_queues:94:5)
    at async getEpisode (/Users/Admin/Apps/Animie/anidl/funimation-downloader-nx/funi.js:368:13)
    at async getShow (/Users/Admin/Apps/Animie/anidl/funimation-downloader-nx/funi.js:251:13)

however, you can still DL with ffmpeg but its a pain..

ffmpeg -headers $'Cookie: src_token=YOURTOKENHERE; \r\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:89.0) Gecko/20100101 Firefox/89.0' -i "FULL URL to .m3u8 WITH KEYPAIR" -c copy -bsf:a aac_adtstoasc output.mkv -v trace

funimation breaks up their streams into two m3u8 files now, one for video & the other is audio track JPN, ENG etc..

also their playerID is random every time depending on the show/EP for EP 5 for Vivy was player/1449163 (experienceID)

not sure how m3u8 is grabbed. the only way I could see it is in the network tab once the video actually loaded. cannot find it anywhere on the page anymore..

Eg Video File: https://vmfst-api.prd.funimationsvc.com/FunimationStoreFront/V2272753/009a3856-bde3-40d2-b065-b7bf4bc47fdestrnv-hl154_streaming_video_1920_1080_7800000_index.m3u8
Audio File: https://vmfst-api.prd.funimationsvc.com/FunimationStoreFront/V2272753/009a3856-bde3-40d2-b065-b7bf4bc47fdestrna-hl102_streaming_audio_2_jpn_composite_aac_ja_index.m3u8
Subs: https://d33et77evd9bgg.cloudfront.net/FunimationStoreFront/V2272753/009a3856-bde3-40d2-b065-b7bf4bc47fde_english_full.vtt

keypair is hidden for obvious reasons...

& as for subs you can look for .srt or .vtt in the script section where col-md-10 video-player-container
is located..
hope a fix is added in... to detect the new streams...

Show missing from search but on the website

After trying the command "node fumi --search "X" the show does not appear in the list but is available on the website (24 episodes [free] and 1 OVA [subscriber]

Tried looking through the HTML code for the page and like others that are found there is a "data-id="#####" that matches so I tried that: node fumi -s 37629 -e 1 but get the error HTTPError 403: Forbidden.

I have a free user account which I also added to the node fumi --auth

Using via Ubuntu ~ Funimation Download NX 4.0.7-beta 2

THINGS

Hello, how are you?

Could you add an argument to download an entire season at once?

And soon Funimation will arrive in Latin America, could you update so that when it happens, we can get the voiceovers in our languages ​​too? (Spanish and Portuguese).

Thank you!!

Download Episode With Non-Integer ID

When listing all the episodes in the selected series, it lists
[001] Series - Title (Time) [Options] [002] Series - Title (Time) [Options] [003] Series - Title (Time) [Options]

However, OVAs have
[V001] Series - Title (Time) [Options]

I've tried lots of different syntax options (V001, ova#01, etc.) but nothing seems to work. How do I download something like this?

[WARN] Detected specific align param, please contact developer

[WARN] Detected specific align param, please contact developer
(node:18752) UnhandledPromiseRejectionWarning: ReferenceError: cosnole is not defined
at convertToAssLine (C:\Users\jmset\Desktop\funimation-downloader-nx-master\modules\module.vttconvert.js:76:9)
at convertToAss (C:\Users\jmset\Desktop\funimation-downloader-nx-master\modules\module.vttconvert.js:61:13)
at module.exports (C:\Users\jmset\Desktop\funimation-downloader-nx-master\modules\module.vttconvert.js:181:12)
at downloadStreams (C:\Users\jmset\Desktop\funimation-downloader-nx-master\funi.js:549:27)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async getEpisode (C:\Users\jmset\Desktop\funimation-downloader-nx-master\funi.js:368:13)
at async getShow (C:\Users\jmset\Desktop\funimation-downloader-nx-master\funi.js:251:13)
(Use node --trace-warnings ... to show where the warning was created)
(node:18752) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:18752) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Can't download anymore

(node:7748) UnhandledPromiseRejectionWarning: TypeError: Cannot read property '1' of null
at downloadStreams (C:\Users\Admin\Downloads\funimation-downloader-nx-4.6.1-win64\funimation-downloader-nx-4.6.1-win64\funi.js:489:67)
at processTicksAndRejections (internal/process/task_queues.js:94:5)
at async getEpisode (C:\Users\Admin\Downloads\funimation-downloader-nx-4.6.1-win64\funimation-downloader-nx-4.6.1-win64\funi.js:446:13)
at async getShow (C:\Users\Admin\Downloads\funimation-downloader-nx-4.6.1-win64\funimation-downloader-nx-4.6.1-win64\funi.js:339:13)
(node:7748) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:7748) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I did download the zip again to check by the way, any show that I try would give this error

ffmpeg \ mkvmerge error?

After episode download completion saw the following:

[WARN] MKVMerge not found, skip using this...
[WARN] FFmpeg not found, skip using this...

Confirmed both exe files are in appropriate folder path within bin.

Has anyone else encountered this issue?

[Error] no such file or directory

** Main info: **

Script version: Funimation Downloader NX 4.6.0
Show ID:
Episode ID:

** Additional Info: **
=== Funimation Downloader NX 4.6.0 ===

Error: ENOENT: no such file or directory, access 'A:\1.Funimation-Rip\1\funimation-downloader-nx-4.5.1-win64\videos/'
at Object.accessSync (fs.js:195:3)
at Object. (J:\1.Funimation-Rip\1\funimation-downloader-nx-4.6.0-win64-Copy\funi.js:158:8)
at Module._compile (internal/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
at Module.load (internal/modules/cjs/loader.js:811:32)
at Function.Module._load (internal/modules/cjs/loader.js:723:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
at internal/main/run_main_module.js:17:11 {
errno: -4058,
syscall: 'access',
code: 'ENOENT',
path: 'A:\1.Funimation-Rip\1\funimation-downloader-nx-4.5.1-win64\videos/'
}
[ERROR] undefined

[BUG] Doesn't seem to be able to pull from premium-only episodes.

** Main info: **

Script version:
Show ID:
Episode ID:

** Additional Info: **
I get a HTTPError 403: FORBIDDEN when trying to download episodes that are Premium only. I am logged in to the website on my premium account. As a reference, I am able to download episodes of My Hero Academia up until 78.

[BUG]

Version: 4.6.2
No matter what show I tried to find, it would always return "[INFO] Total shows found: 0"
I did the --auth, installed everything that was needed, I ran the "npm i" command without any errors.
PS: I used the "funi --search "My Hero" command, I didn't include the node part, cause it would freak out and type out this mess:
"Error: Cannot find module 'C:\Users\100da\Desktop\funimation-downloader-nx-4.6.1-win64\funimation-downloader-nx-4.6.1-win64\funi'

�[90m at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)�[39m
�[90m at Function.Module._load (internal/modules/cjs/loader.js:725:27)�[39m
�[90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)�[39m
�[90m at internal/main/run_main_module.js:17:47�[39m {
code: �[32m'MODULE_NOT_FOUND'�[39m,
requireStack: []"

[BUG]

[ERROR] HTTPError 403: Forbidden
root@4fb6653002dc:/content/funimation-downloader-nx/funimation-downloader-nx#

SOCKS5 Proxy Advice

Just been using the ripper and it seems to be working nicely.

One question I was just wanting a bit of advice on, I use a SOCKS5 proxy on localhost with port 4711.

I've tried with:

--proxy socks5://localhost:4711 = socket closed
--proxy localhost:4711 = cert_has_expired
--proxy http://localhost:4711 = ECONNRESET

final 11 parts of a specific episode reject authentication?

Main info:
node funi.js -s 124389 -e 79 -q 0
yields a working download when logged in until

[INFO] 160 of 181 parts downloaded [88%] (4s)
[INFO] 170 of 181 parts downloaded [94%] (2s)
[ERROR] Part 177 download error:
	Response code 403 (Forbidden)
[ERROR] Part 180 download error:
	Response code 403 (Forbidden)
[ERROR] Part 179 download error:
	Response code 403 (Forbidden)
[ERROR] Part 178 download error:
	Response code 403 (Forbidden)
[ERROR] 4 parts not downloaded
[ERROR] DL Stats: {"first":0,"total":181,"completed":170}

That happens for qualities 0, 3, 6, and 5.
Quality 7 yields

<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>DEADBEEFDEADBEEF</RequestId><HostId>bz06***************************************************************************+/abCd/efghij=</HostId></Error>

Script version: 4.7.0-beta-2
Show ID: 124389
Episode ID: 79

Additional Info:
The episodes next to it download fine, e78 and e80.

[BUG]

node funi -f "naruto"
=== Funimation Downloader NX 4.7.0-beta.2 ===

[INFO] Total shows found: 0

[Token Not Set]

doesnt matter the command i try to excecute i always get a
[Token Not Set]
[ERROR] HTTPError 403: forbidden

i have tryed to log using the funi -auth
but after my login and password set i still get the HTTPError 403: forbidden

[BUG]

** Main info: Search feature does not work/doesen't show results **

Script version: 4.5.0
Show ID: -
Episode ID: -

** Additional Info: grafik **

Cancelled.

Cancel. PEBKAC error.

In the immortal words of Miss Emily Littella (Gilda Radner)...

"Never mind..."

[BUG] options.agent

I encountered this error when running node funi.js --auth --proxy-auth "user:pass" --proxy "https://x.x.x.x:4000" after entering auth details.

[ERROR] TypeError: Expected the `options.agent` properties to be `http`, `https` or `http2`, got `_events`

Am I stupid or something?

I'm like 45% sure I did everything right and installed all the modules... why am I getting this issue?

PS, I have no idea what I'm doing and I don't understand any of this techno-jargon. I just want to download anime.
help me why am i retarded

[URGENT] Script no longer works as it seems Funimation have changed how the API works

Currently the script will report 0 servers available. Upon editing the script to try and pinpoint what's wrong, we can see that the uri of 's' no longer is an entire uri but just the filename.

{"attributes":{"RESOLUTION":{"width":416,"height":234},"CODECS":"avc1.42001e,mp4a.40.2","BANDWIDTH":547097},"uri":"2198051_Japanese_c0654448-3a92-ea11-82a8-dd291e252010_Layer1.m3u8","timeline":0}

meaning that when it's trying to find a server by using

plUrlDl.split('/')[2]

it returns an undefined. This means that the server list it's trying to pull from is empty, and as such it can't find any layer, failing with "Layer not selected".

[BUG] Random UnhandledPromiseRejectionWarning when acquiring m3u8 url

** Main info: **

Script version: Latest git so... 4.6.0?
Show ID: 594522
Episode ID: 26

** Additional Info: **
The above information is an example but not really definitive. It is intermittent and random when it will happen. I can't seem to tell why it happens as trying again will almost cause it to actually work without issue. It doesn't happen just because I'm running a bunch of requests as sometimes it hits on the first one. However I did heed nodejs's request and added --trace-warnings so I can get something more detailed for you.

[INFO] Sword Art Online - S2E01 - The World of Guns
[INFO] Available streams (Non-Encrypted):
[#603604] Japanese [Uncut] (selected)
[#603613] English [Uncut]
(node:20285) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_URL]: Invalid URL: 1867195_Japanese_21077844-c2e2-e811-8175-020165574d09_Layer1.m3u8
    at onParseError (internal/url.js:256:9)
    at new URL (internal/url.js:332:5)
    at downloadStreams (/home/shinji/funimation-downloader-nx/funi.js:493:24)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async getEpisode (/home/shinji/funimation-downloader-nx/funi.js:446:13)
    at async getShow (/home/shinji/funimation-downloader-nx/funi.js:339:13)
    at emitUnhandledRejectionWarning (internal/process/promises.js:168:15)
    at processPromiseRejections (internal/process/promises.js:247:11)
    at processTicksAndRejections (internal/process/task_queues.js:94:32)
(node:20285) TypeError [ERR_INVALID_URL]: Invalid URL: 1867195_Japanese_21077844-c2e2-e811-8175-020165574d09_Layer1.m3u8
    at onParseError (internal/url.js:256:9)
    at new URL (internal/url.js:332:5)
    at downloadStreams (/home/shinji/funimation-downloader-nx/funi.js:493:24)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async getEpisode (/home/shinji/funimation-downloader-nx/funi.js:446:13)
    at async getShow (/home/shinji/funimation-downloader-nx/funi.js:339:13)
(node:20285) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
    at emitDeprecationWarning (internal/process/promises.js:180:11)
    at processPromiseRejections (internal/process/promises.js:249:13)
    at processTicksAndRejections (internal/process/task_queues.js:94:32)

Can you please actually explain how to install and use this?

I have installed all the prerequisites successfully. I went to node_modules/npm/, where the package.json file is, and ran "npm i". Now I have the "funimation-downloader-nx-4.6.1-win64" folder sitting in my downloads folder. What am I supposed to do with the contents of this folder? To I add the exe to my PATH? Do I put it somewhere in the nodejs directory? Do I run a certain command with node?
When I open the command prompt in the "funimation-downloader-nx-4.6.1-win64" folder and type "node funi" I get this:
image
typing "funi" on its own appears to work, but when I try to actually download anything using the command you show in the readme, I get all this, which I can't even fit in one image:
image
image

If I'm supposed to open the command prompt in a directory other than where the "cmd-here.bat" is, then where? If I need to install this with node somehow, then how? Why is there no documentation anywhere in this project? In a nutshell, what am I supposed to do?

[BUG]

SUBTITLES WITH OTHER LANGUAGES DON'T ARE DOWNLOADING!!!
LIKE SPANISH (LATAM) AND PORTUGUESE.
FIX IT, PLEASE!! :(

[TS file not fully downloaded]

** Main info: **

Script version: 4.7.0-beta.2
Show ID: 1321634 [Mushoku Tensei : Jobless Reincarnation]
Episode ID: 0001 [Episode 1, Jobless Reincarnation]

I'm having trouble with downloading. I can't download the complete video. I only got the incomplete m3u8 video file, [Funimation] Mushoku Tensei_ Jobless Reincarnation - 01 [1080p].ts.resume . But I could download completely when quality level is low( -q 1 ). I got these errors when I download the previous (-q 1) video with (-q 10). I also doubt that it is because of my slow internet speed. While I'm downloading, I also got warnings and errors. Please check the image below. Someone solve my issue, please.

Error Message and Warning

Script failing to start

96eoA8a 1

** Main info: **
Error: Cannot find module 'got'
Require stack:

  • X:\Downloads\funimation-downloader-nx-4.6.1-win64\funi.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)
    at Function.Module._load (internal/modules/cjs/loader.js:841:27)
    at Module.require (internal/modules/cjs/loader.js:1025:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object. (X:\Downloads\funimation-downloader-nx-4.6.1-win64\funi.js:16:13)
    at Module._compile (internal/modules/cjs/loader.js:1137:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {
    code: 'MODULE_NOT_FOUND',
    requireStack: [ 'X:\Downloads\funimation-downloader-nx-4.6.1-win64\funi.js' ]

Script version: latest
Show ID: n/a
Episode ID: n/a

** Additional Info: **

Vtt dfxp

** Main info: **
Currently I am able to download subtitles as .srt only, is there a way to download dfxp and vtt if the files are available?
// download subtitles
if(stDlPath){
console.log('[INFO] Downloading subtitles...');
console.log(stDlPath);
let subsSrc = await getData({
url: stDlPath,
useProxy: true,
});
if(subsSrc.ok){
let srtData = ttml2srt(subsSrc.res.body);
let srtFile = path.join(cfg.dir.content, fnOutput) + '.srt';
fs.writeFileSync(srtFile, srtData);
console.log('[INFO] Subtitles downloaded!');
}
else{
console.log('[ERROR] Failed to download subtitles!');
argv.mks = false;
}
}
current download subtitles function saves as srt only, I managed to get vtt url but I have yet to make a function to save it that works, I would greatly appreciate direction on how should I change to compile and be able to download the mentioned vtt and dfxp files if available

[BUG] cli-defaults.yml, video layer not being phrased (config ignored)

** Main info: **

Script version: 4.7.0-beta.2
Show ID: 592641
Episode ID: 24

I've noticed that the script fails to load the quality parameter found in cli-defaults.yml
I have it set to videoLayer: 0 however when I run node funi.js -s 592641 -e 24 --mks it downloads at video layer 7 (720p)

I can't find some anime shows!

** Main info: **
I am unable to find and download "Heat Guy J"
I can't find some shows using this script, I've tried to login and logout several times and still nothing appears, I used vpn and proxy to change my ip and still nothing worked.

Here is the link to the show: https://www.funimation.com/shows/heat-guy-j/

X:\FuniDL\funimation-downloader-nx  ([email protected])
λ node funi.js --auth

=== Funimation Downloader NX 4.6.0 ===

[Q] LOGIN/EMAIL: [email protected]
[Q] PASSWORD   : 010101010101
[INFO] Authentication success, your token: 5c**************************************


X:\FuniDL\funimation-downloader-nx  ([email protected])
λ node funi.js --search "My Hero"

=== Funimation Downloader NX 4.6.0 ===

[INFO] Search Results:
[#124389] My Hero Academia (2016)
[INFO] Total shows found: 1


X:\FuniDL\funimation-downloader-nx  ([email protected])
λ node funi.js --search "Heat"

=== Funimation Downloader NX 4.6.0 ===

[INFO] Total shows found: 0


X:\FuniDL\funimation-downloader-nx  ([email protected])
λ node funi.js --search "HeatGuy"

=== Funimation Downloader NX 4.6.0 ===

[INFO] Total shows found: 0


X:\FuniDL\funimation-downloader-nx  ([email protected])
λ node funi.js --search "Heat Guy"

=== Funimation Downloader NX 4.6.0 ===

[INFO] Total shows found: 0```

Does anyone have any suggestions to solve this problem?

[BUG] Video extractor will randomly say a layer wasn't selected.

** Main info: **
Video extractor will randomly say a layer wasn't selected, even though it was.
Example:

node funi -s 39787 -e 24,28,30 -q 10 --nosubs
.....

[INFO] Selected Episodes: 0024, 0028, 0030

[INFO] The Heroic Legend of Arslan - S1E24 - The Decisive Battle
[INFO] Available streams (Non-Encrypted):
[#186181] English [Uncut] (selected)
[#45969] Japanese [Simulcast]
[#45153] English [Simulcast]
[INFO] Servers available:
        d132fumi6di1wa.cloudfront.net
        funiprod.akamaized.net
[INFO] Available qualities:
         1: 234p (534KiB/s)
         2: 270p (776KiB/s)
         3: 360p (1020KiB/s)
         4: 360p (1753KiB/s)
         5: 540p (2461KiB/s)
         6: 720p (3138KiB/s)
         7: 720p (4496KiB/s)
         8: 810p (6334KiB/s)
         9: 1080p (8227KiB/s)
        10: 1080p (10062KiB/s)
[INFO] Selected layer: 10 (1080p) @ d132fumi6di1wa.cloudfront.net
[INFO] Stream URL: https://d132fumi6di1wa.cloudfront.net/FunimationStoreFront/1495156/English/1495156_English_86655052-e65c-e711-8175-020165574d09_Layer10.m3u8
[INFO] Output filename: [Funimation] The Heroic Legend of Arslan - 24 [1080p].ts
[INFO] Saving stream to «videos\[Funimation] The Heroic Legend of Arslan - 24 [1080p].ts»...
[INFO] 10 of 186 parts downloaded [5%] (32s)
[INFO] 20 of 186 parts downloaded [11%] (37s)
[INFO] 30 of 186 parts downloaded [16%] (38s)
[INFO] 40 of 186 parts downloaded [22%] (37s)
[INFO] 50 of 186 parts downloaded [27%] (35s)
[INFO] 60 of 186 parts downloaded [32%] (55s)
[INFO] 70 of 186 parts downloaded [38%] (48s)
[INFO] 80 of 186 parts downloaded [43%] (43s)
[INFO] 90 of 186 parts downloaded [48%] (40s)
[INFO] 100 of 186 parts downloaded [54%] (35s)
[INFO] 110 of 186 parts downloaded [59%] (30s)
[INFO] 120 of 186 parts downloaded [65%] (25s)
[INFO] 130 of 186 parts downloaded [70%] (22s)
[INFO] 140 of 186 parts downloaded [75%] (18s)
[INFO] 150 of 186 parts downloaded [81%] (14s)
[INFO] 160 of 186 parts downloaded [86%] (10s)
[INFO] 170 of 186 parts downloaded [91%] (6s)
[INFO] 180 of 186 parts downloaded [97%] (2s)
[INFO] 186 of 186 parts downloaded [100%] (0s)
undefined
[WARN] MKVMerge not found, skip using this...
[WARN] FFmpeg not found, skip using this...

[INFO] Done!

[INFO] The Heroic Legend of Arslan - S2E28 - Chapter III - Journey Horse, Sad and Solitary
[INFO] Available streams (Non-Encrypted):
[#499925] English [Uncut] (selected)
[#139900] Japanese [Simulcast]
[#145441] English [Simulcast]
[INFO] Servers available:

[INFO] Available qualities:
         1: 234p (540KiB/s)
         2: 270p (775KiB/s)
         3: 360p (1013KiB/s)
         4: 360p (1702KiB/s)
         5: 540p (2356KiB/s)
         6: 720p (2918KiB/s)
         7: 720p (4187KiB/s)
         8: 810p (5845KiB/s)
         9: 1080p (7633KiB/s)
        10: 1080p (9374KiB/s)
[ERROR] Layer not selected!

Way to fix it is to keep pasting the exact command until it feels like accepting it.

Script version:
Show ID:
Episode ID:

** Additional Info: **

[BUG]

** Main info: **
I got 403 error whatever i do .

node funi --search "My Hero"

=== Funimation Downloader NX 4.7.0-beta.2 ===

[INFO] Token not set!

[ERROR] HTTPError 403: Forbidden

Script version:
Show ID:
Episode ID:

** Additional Info: **

[BUG]

Script version: 4.7.0-beta.2
Show ID: #1173233
Episode ID: 0004-0006
Bug Pic 1
Bug Pic 2

** Additional Info: **

Worked on Episodes 0001-0003, but stopped working on 0004-0006.

unhandled exception on new episodes with a premium subscription [BUG]

!-- Please

** Main info: [INFO] Kuma Kuma Kuma Bear - S1E11 - Bear, Fights Squid (?)
[INFO] Available streams (Non-Encrypted):
[#1176451] Japanese [Simulcast]
[#1407326] English [Simulcast] (selected)
(node:7628) UnhandledPromiseRejectionWarning: TypeError: Cannot read property '1' of null
at downloadStreams (U:\GitHub\funimation-downloader-nx-master\funi.js:413:66)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async getEpisode (U:\GitHub\funimation-downloader-nx-master\funi.js:368:13)
at async getShow (U:\GitHub\funimation-downloader-nx-master\funi.js:251:13)
(node:7628) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:7628) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.**

Script version: 4.7.0 beta.2
Show ID: 1176414
Episode ID: 0011

** Additional Info: **

Seasons

** Main info: **

Script version: 4.6.1
Show ID: The Promised Neverland (S2)
Episode ID:

** Additional Info: **
I notice that some animes have seasons at which their episodes start from 1 again (the anime has same id, different seasons/eps though), meaning they aren't consistently numerical from season 1 to season 2. Issue is that if I wanted to get the 8th episode from season 2 of TPM, there would need to be an extra query: season=<num>.
Example:
https://prod-api-funimationnow.dadcdigital.com/api/funimation/episodes/?limit=-1&sort=order&sort_direction=ASC&title_id=800858&season=2&language=English
However, this brings up a second issue. This api doesn't work for fetching the second season. (Please let me know which directories/queries could work though in the case I'm wrong)

This api, though, which is built into the default funimation domain, works, which made me think, is funimation.com/api more reliable to use than the prod-api one to use for episodes?
https://www.funimation.com/api/episodes/watchnext/?title_id=800858&season=2&sort=order&sort_direction=ASC

Thanks for reading lol

[ERROR] HTTPError 403: FORBIDDEN

funi -s 147977 -e 5 -q 0 --sub --mks

[INFO] Selected Episodes: 0005

[INFO] The Melancholy of Haruhi Suzumiya - S1E05 - The Melancholy of Haruhi Suzumiya V
[INFO] Available streams (Non-Encrypted):
[#148058] Japanese [Uncut] (selected)
[#148026] English [Uncut]
[ERROR] HTTPError 403: FORBIDDEN

Episode 1-4 downloaded fine. Episode 5, and everything after does not download, and returns a 403 error.

Req: Title naming with season/episode numbering

I'm downloading SAO, and I can't get the naming the way I'd like it.

$ node funi -s 594522 -q 0 -e S002 --sub

gives output named
[Funimation] Sword Art Online - 18.5 [1080p].mkv

The season/episode info is available:
[INFO] Selected Episodes: S002

[INFO] Sword Art Online - S3E18.5 - Recollection

And this is exactly how I'd like my files to be named. As it is, I can only download one season at a time, since it will try to create episode 1 again for the new season.

Any ideas?

Beta 2 feedback

--mks works like a charm, it does mux the advanced substation alpha subs using the vtt converter, if we could mux fonts using --mks like in the cr version that would be awesome(MIME Type recognition).
If I try to use a custom name for -t that includes a !, this symbol will be ignored in the naming(bug).
Funi got released for mexico and brazil, it would be great if we could download those subs and dubs.

[BUG] [ERROR] Key for part NaN download error/[ERROR] Track not selected

** Main info: **

Script version: 4.6.0
Show ID: 36842
Episode ID: 1

** Additional Info: **

[ERROR] Key for part NaN download error:
        Cannot read property 'p' of undefined
[ERROR] Key for part NaN download error:
        Cannot read property 'p' of undefined
[ERROR] 2 parts not downloaded
[ERROR] DL Stats: {"first":0,"total":180,"completed":10}

Using node funi.js -s 36842 -e 1 -q 0 --mks

I also get [ERROR] Track not selected when using on another anime node funi.js -s 1108396 -e 2

add support to animelab? (Funimation closings its doors in AU)

Funimation & animelab are the same company & its easier to download from animelab as you can watch & download the anime even without subscription but you need to know the link EG:

Darwins Game https://dcgm6i50yfgtk.cloudfront.net/madABR_21089_e29eda147d8344d/dash/1080.mp4
& the audio is seperate: https://dcgm6i50yfgtk.cloudfront.net/madABR_21089_e29eda147d8344d/dash/audio.mp4

for Jap release they hardcode the subtitles into the video.

Screen Shot 2020-01-26 at 11 26 40 am

@anidl maybe you could find a way to build this into this downloader or maybe make a seperate one that can fetch the streams for each episode & mux them? because downloading each episode is painstakingly slow, when trying to download the whole show & episode at a time.

i'm not sure how i can automate this... as i'm my coding skills are extremely low to none.

[BUG]

** Main info: **

Script version: funimation-downloader-nx-4.5.1
Show ID: 1019573 BOFURI: I Don’t Want to Get Hurt, so I’ll Max Out My Defense
Episode ID: 9

** Additional Info: **
funi

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.