crunchy-labs / crunchy-cli

👇 Command-line downloader for Crunchyroll
MIT License
608 stars 61 forks source link

Thread "main" panicked error #258

Closed exus85 closed 9 months ago

exus85 commented 1 year ago

Describe the bug I can't download since last week

To Reproduce Steps / command to reproduce the behavior:

$ crunchy archive -a ja-JP -s it-IT -s en-US  -m audio -o "x:\anime\One Piece\S21\{series_name} E{episode_number} {title}.mkv" --skip-existing https://www.crunchyroll.com/series/GRMG8ZQZR/one-piece[S13E1079-]

Screenshots error YtDlp

Client (please complete the following information):

Additional context

thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', crunchy-cli-core\src\utils\download.rs:742:62
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
bytedream commented 1 year ago

Which ffmpeg version do you use? (to check execute ffmpeg -hide_banner -version)

exus85 commented 1 year ago

ffmpeg version 6.0-full_build-www.gyan.dev

bytedream commented 1 year ago

Okay mhh, I cannot reproduce this atm. Could you execute ffmpeg -y -hide_banner -i <some video file> on some video file you have and share the output? This internally used ffmpeg command is the cause of the error, I want to see if it gives any unexpected output on your end

exus85 commented 1 year ago
X:\Download\yt-dlp>ffmpeg -y -hide_banner -i test.mkv
Input #0, matroska,webm, from 'test.mkv':
  Metadata:
    COMPATIBLE_BRANDS: iso5dashmsix
    MAJOR_BRAND     : iso5
    MINOR_VERSION   : 1
    ENCODER         : Lavf60.3.100
  Duration: 00:23:50.79, start: 0.000000, bitrate: 8121 kb/s
  Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn (default)
    Metadata:
      title           : Default
      HANDLER_NAME    : VideoHandler
      VENDOR_ID       : [0][0][0][0]
      DURATION        : 00:23:50.723000000
  Stream #0:1(ja-JP): Audio: aac (LC), 44100 Hz, stereo, fltp (default)
    Metadata:
      title           : Japanese
      VENDOR_ID       : [0][0][0][0]
      HANDLER_NAME    : SoundHandler
      DURATION        : 00:23:50.790000000
  Stream #0:2(it-IT): Subtitle: ass
    Metadata:
      title           : Italian
      ENCODER         : Lavc60.3.100 ssa
      DURATION        : 00:23:45.690000000
At least one output file must be specified

Isn't there something wrong with the download phase? it's just downloading few KB

bytedream commented 1 year ago

No, everything is there as expected, which makes the issue more even weirder. I can build a workaround which just defaults to a specific variable and does not let the program crash anymore if I can't make it reproducible with further testing

exus85 commented 1 year ago

I think the cause of this error is my primary ISP connection. I activated the verbose output and I saw that it was downloading the video chunks from http://prod.gccrunchyroll.com/.... and on the browser it's showing something related to google edge cloud During the last days I experienced issues when using my primary connection (blocked connection with error 403 to various google services like cloud/domains). If I switch to my backup connection the download works fine.

YewTreeWeb commented 12 months ago

I am also getting this error when I try crunchy-cli --credentials $login download -a en-US -r best -s en-US -o "{series_name}/Season {season_number}/{series_name}-S{season_number}E{episode_number}-{title}.mp4" https://www.crunchyroll.com/series/GQWH0M9N8/my-dress-up-darling

Unfortunately, I can't give a verbose output as whenever I try to pass verbose I get the error unrecognized subcommand. The ffmpeg version I use is 6.0_1 if that helps

YewTreeWeb commented 12 months ago

Ok I've got verbose to work and I get the same with the video chunks coming from from http://prod.gccrunchyroll.com/ I don't have a back-up connection to use sadly. This has relatively only just started to happen to me so it's odd. Please see below part of my verbose output:

[2023-10-26 22:33:06] DEBUG  crunchy_cli::utils::download (6) Downloaded and decrypted segment [357/357 100.00%] https://prod.gccrunchyroll.com/evs3/2acad03c21fd3b56a373cf64128dd00f/assets/7ddf3146e7d6e271086ea29512534365_,4288710.mp4,4288711.mp4,4288709.mp4,4288707.mp4,4288708.mp4,.urlset/fragment-356-f1-a1-x3.m4s?URLPrefix=aHR0cHM6Ly9wcm9kLmdjY3J1bmNoeXJvbGwuY29tL2V2czMvMmFjYWQwM2MyMWZkM2I1NmEzNzNjZjY0MTI4ZGQwMGYvYXNzZXRzLzdkZGYzMTQ2ZTdkNmUyNzEwODZlYTI5NTEyNTM0MzY1Xyw0Mjg4NzEwLm1wNCw0Mjg4NzExLm1wNCw0Mjg4NzA5Lm1wNCw0Mjg4NzA3Lm1wNCw0Mjg4NzA4Lm1wNCwudXJsc2V0Lw&Expires=1698532337561&KeyName=cdn-prod-keyset&Signature=ZcO_H_UJNQnRjJnKcfwrsU6A6zpd0drXPgvwCju1genJuTr4GZ0YJI78PLyJfdj4VCf2Vmh8Rd3COuVZNeFdCw&t=exp=1698532338~acl=/evs3/2acad03c21fd3b56a373cf64128dd00f/assets/7ddf3146e7d6e271086ea29512534365_,4288710.mp4,4288711.mp4,4288709.mp4,4288707.mp4,4288708.mp4,.urlset/*~hmac=342e67929c84e7a6ae429062c504b415cf7a18e14309ca5c589f2f825a85e42c
thread 'main' panicked at crunchy-cli-core/src/utils/download.rs:742:62:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I have also rolled back to 3.0.0 but still getting the same error

YewTreeWeb commented 12 months ago

I’m not a Rust developer, I’m a JS developer by trade so you will know much more than me but I found this just now. Thought it might be useful with potential solving the issue https://users.rust-lang.org/t/code-has-started-to-panic/101416

bytedream commented 9 months ago

Starting with v3.2.0, it will show a proper error message. I can't do anything beyond that as it seems to be a local domain blocking issue