Jackett: [yggtorrent] Exception (yggtorrent): Input string was not in a correct format.: Input string was not in a correct format. (Test)

Created on 6 Apr 2020  路  23Comments  路  Source: Jackett/Jackett

Please use the search bar at the top of the page and make sure you are not creating an already submitted issue.
Check closed issues as well, because your issue may have already been fixed.

Please read our Contributing Guidelines before submitting your issue to ensure a prompt response to your bug.

Environment

OS: Qnap

.Net Runtime: [.Net-Core/.Net-Framework/Mono]

.Net Version:

Jackett Version: Version 0.12.1681.0

Last Working Jackett Version: Version 0.12.1681.0

Are you using a proxy or VPN? [yes/no] no

Description

indexing on yggtorrent tracker won't work anymore since today.

Logged Error Messages

An error occured while testing this indexer
Exception (yggtorrent): Input string was not in a correct format.: Input string was not in a correct format

Jackett.Common.IndexerException: Exception (yggtorrent): Input string was not in a correct format.
---> System.FormatException: Input string was not in a correct format.
at System.Number.ThrowOverflowOrFormatException(ParsingStatus status, TypeCode type)
at CloudflareSolverRe.Types.Javascript.JsFuck.DecodeNumber(String encodedNumber)
at CloudflareSolverRe.Types.Javascript.JsCalculation.Solve()
at CloudflareSolverRe.Types.Javascript.CfdnCalculation.Solve()
at CloudflareSolverRe.Types.Javascript.CfdnCalculation.get_Result()
at CloudflareSolverRe.Types.Javascript.JsChallenge.ApplyCalculation(Double number, IJsCalculation calculation)
at System.Linq.Enumerable.AggregateTSource,TAccumulate
at CloudflareSolverRe.Types.Javascript.JsChallenge.Solve()
at CloudflareSolverRe.Solvers.JsChallengeSolver.SolveChallenge(String html)
at CloudflareSolverRe.Solvers.JsChallengeSolver.Solve()
at CloudflareSolverRe.CloudflareSolver.SolveJavascriptChallenge(Nullable1 jsDetectResult) at CloudflareSolverRe.CloudflareSolver.SolveWithJavascript(Int32 tries) at CloudflareSolverRe.CloudflareSolver.Solve() at CloudflareSolverRe.CloudflareSolver.Solve(HttpClient httpClient, CloudflareHandler cloudflareHandler, Uri siteUrl, CancellationToken cancellationToken) at CloudflareSolverRe.CloudflareSolver.<>c__DisplayClass30_0.<<Solve>b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at CloudflareSolverRe.Utilities.SemaphoreLocker.LockAsync[T](Func1 worker)
at CloudflareSolverRe.CloudflareSolver.Solve(HttpClient httpClient, HttpClientHandler httpClientHandler, Uri siteUrl, CancellationToken cancellationToken, Boolean randomUserAgent)
at CloudflareSolverRe.ClearanceHandler.GetClearance(HttpRequestMessage request, CancellationToken cancellationToken)
at CloudflareSolverRe.ClearanceHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts) at Jackett.Common.Utils.Clients.HttpWebClient2NetCore.Run(WebRequest webRequest) in /home/appveyor/projects/jackett/src/Jackett.Common/Utils/Clients/HttpWebClient2NetCore.cs:line 241 at Jackett.Common.Utils.Clients.WebClient.GetString(WebRequest request) in /home/appveyor/projects/jackett/src/Jackett.Common/Utils/Clients/WebClient.cs:line 165 at Jackett.Common.Indexers.BaseWebIndexer.RequestStringWithCookies(String url, String cookieOverride, String referer, Dictionary2 headers) in /home/appveyor/projects/jackett/src/Jackett.Common/Indexers/BaseIndexer.cs:line 455
at Jackett.Common.Indexers.CardigannIndexer.PerformQuery(TorznabQuery query) in /home/appveyor/projects/jackett/src/Jackett.Common/Indexers/CardigannIndexer.cs:line 1307
at Jackett.Common.Indexers.BaseIndexer.ResultsForQuery(TorznabQuery query) in /home/appveyor/projects/jackett/src/Jackett.Common/Indexers/BaseIndexer.cs:line 355
--- End of inner exception stack trace ---
at Jackett.Common.Indexers.BaseIndexer.ResultsForQuery(TorznabQuery query) in /home/appveyor/projects/jackett/src/Jackett.Common/Indexers/BaseIndexer.cs:line 355
at Jackett.Common.Indexers.BaseWebIndexer.ResultsForQuery(TorznabQuery query) in /home/appveyor/projects/jackett/src/Jackett.Common/Indexers/BaseIndexer.cs:line 825
at Jackett.Common.Services.IndexerManagerService.TestIndexer(String name) in /home/appveyor/projects/jackett/src/Jackett.Common/Services/IndexerManagerService.cs:line 222
at Jackett.Server.Controllers.IndexerApiController.Test() in /home/appveyor/projects/jackett/src/Jackett.Server/Controllers/IndexerApiController.cs:line 129
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Jackett.Server.Middleware.CustomExceptionHandler.Invoke(HttpContext httpContext) in /home/appveyor/projects/jackett/src/Jackett.Server/Middleware/CustomExceptionHandler.cs:line 73

Confirmed

Most helpful comment

Same issue here and after delete/add yggtorrent, error changed with : An error occured while updating this indexer
Login failed: No form found on https://yggtorrent.se/ using form selector #user-login

All 23 comments

Hi @Julienchaillot,

You've created an issue, but haven't provided any details to allow the community to assist you. To prevent issue tracker clutter, this issue will now be closed. Please provide the information needed below and your comment will automatically re-open this issue.

Environment

OS:

.Net Runtime: [.Net-Core/.Net-Framework/Mono]

.Net Version:

Jackett Version:

Last Working Jackett Version:

Are you using a proxy or VPN? [yes/no]

Description

[List steps to reproduce the error and details on what happens and what you expected to happen]

Logged Error Messages

[Place any relevant error messages you noticed from the logs here.]

[Make sure you attach the full logs with your personal information removed in case we need more information]

Screenshots

[Place any screenshots of the issue here if needed]

Environment

OS: Qnap

.Net Runtime: [.Net-Core/.Net-Framework/Mono]

.Net Version:

Jackett Version: Version 0.12.1681.0

Last Working Jackett Version: Version 0.12.1681.0

Are you using a proxy or VPN? [yes/no] no
Description

indexing on yggtorrent tracker won't work anymore since today.
Logged Error Messages

An error occured while testing this indexer
Exception (yggtorrent): Input string was not in a correct format.: Input string was not in a correct format

Jackett.Common.IndexerException: Exception (yggtorrent): Input string was not in a correct format.
---> System.FormatException: Input string was not in a correct format.
at System.Number.ThrowOverflowOrFormatException(ParsingStatus status, TypeCode type)
at CloudflareSolverRe.Types.Javascript.JsFuck.DecodeNumber(String encodedNumber)
at CloudflareSolverRe.Types.Javascript.JsCalculation.Solve()
at CloudflareSolverRe.Types.Javascript.CfdnCalculation.Solve()
at CloudflareSolverRe.Types.Javascript.CfdnCalculation.get_Result()
at CloudflareSolverRe.Types.Javascript.JsChallenge.ApplyCalculation(Double number, IJsCalculation calculation)
at System.Linq.Enumerable.AggregateTSource,TAccumulate
at CloudflareSolverRe.Types.Javascript.JsChallenge.Solve()
at CloudflareSolverRe.Solvers.JsChallengeSolver.SolveChallenge(String html)
at CloudflareSolverRe.Solvers.JsChallengeSolver.Solve()
at CloudflareSolverRe.CloudflareSolver.SolveJavascriptChallenge(Nullable1 jsDetectResult) at CloudflareSolverRe.CloudflareSolver.SolveWithJavascript(Int32 tries) at CloudflareSolverRe.CloudflareSolver.Solve() at CloudflareSolverRe.CloudflareSolver.Solve(HttpClient httpClient, CloudflareHandler cloudflareHandler, Uri siteUrl, CancellationToken cancellationToken) at CloudflareSolverRe.CloudflareSolver.<>c__DisplayClass30_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at CloudflareSolverRe.Utilities.SemaphoreLocker.LockAsyncT
at CloudflareSolverRe.CloudflareSolver.Solve(HttpClient httpClient, HttpClientHandler httpClientHandler, Uri siteUrl, CancellationToken cancellationToken, Boolean randomUserAgent)
at CloudflareSolverRe.ClearanceHandler.GetClearance(HttpRequestMessage request, CancellationToken cancellationToken)
at CloudflareSolverRe.ClearanceHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts) at Jackett.Common.Utils.Clients.HttpWebClient2NetCore.Run(WebRequest webRequest) in /home/appveyor/projects/jackett/src/Jackett.Common/Utils/Clients/HttpWebClient2NetCore.cs:line 241 at Jackett.Common.Utils.Clients.WebClient.GetString(WebRequest request) in /home/appveyor/projects/jackett/src/Jackett.Common/Utils/Clients/WebClient.cs:line 165 at Jackett.Common.Indexers.BaseWebIndexer.RequestStringWithCookies(String url, String cookieOverride, String referer, Dictionary2 headers) in /home/appveyor/projects/jackett/src/Jackett.Common/Indexers/BaseIndexer.cs:line 455
at Jackett.Common.Indexers.CardigannIndexer.PerformQuery(TorznabQuery query) in /home/appveyor/projects/jackett/src/Jackett.Common/Indexers/CardigannIndexer.cs:line 1307
at Jackett.Common.Indexers.BaseIndexer.ResultsForQuery(TorznabQuery query) in /home/appveyor/projects/jackett/src/Jackett.Common/Indexers/BaseIndexer.cs:line 355
--- End of inner exception stack trace ---
at Jackett.Common.Indexers.BaseIndexer.ResultsForQuery(TorznabQuery query) in /home/appveyor/projects/jackett/src/Jackett.Common/Indexers/BaseIndexer.cs:line 355
at Jackett.Common.Indexers.BaseWebIndexer.ResultsForQuery(TorznabQuery query) in /home/appveyor/projects/jackett/src/Jackett.Common/Indexers/BaseIndexer.cs:line 825
at Jackett.Common.Services.IndexerManagerService.TestIndexer(String name) in /home/appveyor/projects/jackett/src/Jackett.Common/Services/IndexerManagerService.cs:line 222
at Jackett.Server.Controllers.IndexerApiController.Test() in /home/appveyor/projects/jackett/src/Jackett.Server/Controllers/IndexerApiController.cs:line 129
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Jackett.Server.Middleware.CustomExceptionHandler.Invoke(HttpContext httpContext) in /home/appveyor/projects/jackett/src/Jackett.Server/Middleware/CustomExceptionHandler.cs:line 73

Same issue here and after delete/add yggtorrent, error changed with : An error occured while updating this indexer
Login failed: No form found on https://yggtorrent.se/ using form selector #user-login

Strangely,, it works normally again... Maybe a bug on yggtoreent

Strangely,, it works normally again... Maybe a bug on yggtoreent

Not for me sadly, I have the same error as you ("Exception (yggtorrent): Login failed: No form found on https://yggtorrent.se/ using form selector #user-login: Parse error")

Strangely,, it works normally again... Maybe a bug on yggtoreent

Not for me sadly, I have the same error as you ("Exception (yggtorrent): Login failed: No form found on https://yggtorrent.se/ using form selector #user-login: Parse error")

Again KO :( very unstable...

Seems related to the CloudFlare DDoS protection.

Seems related to the CloudFlare DDoS protection.

Why that?

Indeed, on a homemade scraper, I also encounter that issue since this morning due to the CloudFlare DDoS protection.
As soon as you're flagged into the DDoS protection, you need a way to execute the javascript generated by cloudflare (a kind of challenge from what i read) in order to grab a cookie that allows you to surf on the website.

Since jackett (and all other scrapers for yggtorrent) has no way to execute such challenge, as soon as you are tagged into that DDoS protection you will not be able to perform any more queries without getting a proper cloudflare cookie token.

Easiest thing is to use selenium to get that cookie, but I am listening to other propositions :)

I'm encountering the same issue:

Exception (yggtorrent): Input string was not in a correct format.: Input string was not in a correct format.

indeed, browsing to https://www2.yggtorrent.se/ triggers the ddos protection
Does this mean the only solution would be to mimic a real browser to get this cookie: __cf_bm ?
https://support.cloudflare.com/hc/en-us/articles/200170156-Understanding-the-Cloudflare-Cookies#12345681

How does the flagging work exactly ? Do we just wait to be unflagged ?

From my tests, it seems you need more than just __cf_bm :

  • cf_clearance
  • __ga
  • __cfduid

are also needed.
By the way, it seems that those cookies are dependent of the user agent, so if you plan to get those using selenium, to then forward it to whatever you want, be sure to keep the same user agent accross all the requests. I am looking into it and might post what i found here (if i find anything).

Edit : Can confirm, you need cf_clearance, __ga, __cfduid and __cf_bm. And those needs to be used with the same user-agent that they were produced with. (This must be documented somewhere, but i didn't google too much).

Also, you might want to look into this project : https://github.com/Anorov/cloudflare-scrape

@Julienchaillot Your log shows that it is indeed the cloudflare anti-DDoS protection that in interfering with the indexer, and because Jackett cannot solve the reCaptcha challenge, the indexer is presented with a cloudflare page instead of the search results, hence the _input string incorrect format_ error.

Unfortunately I am not seeing this challenge in my region, so I cannot test independently to verify a solution.
Obviously, while the yggtorrent web site is using this protection you cannot use the Jackett yggtorrent indexer to access the site.

There is however an alternate indexer called YGGCookie which uses the cookie method to access the site, at least temporarily, until the cookie expires and needs refreshing again.
But since I don't get the challenge I cannot test if the yggcookie indexer will work, so I need someone to try it out and report.
But first you need to upgrade to Jackett Pre-release 0.14.454 in order to get the latest yggcookie indexer with the user-agent modification.
If it works then use yggcookie until cloudflare lift the blacklist of your IP address, at which point you can go back to using yggtorrent, which is recommended over trying to use yggcookie permanently.

@ Everybody, Feedback is welcome, but take it easy, I don't need 100 _it does not work_ posts, so before posting check that some one has not already verified if yggcookie works or not. ;-)
Thanks.

I also have the same error : ("Exception (yggtorrent): Login failed: No form found on https://yggtorrent.se/ using form selector #user-login: Parse error")

@garfield69 I upgraded to Jackett Pre-release 0.14.454 and set the cookie and the user-agent settings and it seems to work perfectly, thank you!

@CaptAintHere Excellent. Thank you for the feedback.
I will publish a full release shortly.

Jackett 0.14.459

Hi, same error here, with "Jackett Version 0.14.541.0" !

Cloudflare has been disabled on yggtorrent side. I guess reverting the fix should work (it did on my side). Not sure if it was temporary or if they are going to re-enable it though.

there is no reverting required.
if you believe that you are no longer being challenged by cloudflare when you use your browser to access the yggtorrent site, then you can stop using YGGCookie, and go back to using the YGGTorrent indexer.
You may need to first edit that config to ensure its Sitelink and Searchlink addresses are still correct, as these can be changed when the indexer gets an unexpected response from the web site.
Refer to https://github.com/Jackett/Jackett/issues/7095#issuecomment-582238746 which still has valid settings and recovery instructions.

No form found on https://yggtorrent.se. On version 0.15.36.0.

YggCookie alternative works though.

@freMea yggtorrent will not work if your jackett indexer is still getting the cloudflare anti-DDoS challenge.
For those not getting the challenge the yggtorrent indexer works, as it does for me.
in the mean time, yggcookie is an acceptable working alternative.

Cloudflare attacks again... I'm on it.
Update: discussion here => #8464

Was this page helpful?
0 / 5 - 0 ratings

Related issues

silverbullettruck2001 picture silverbullettruck2001  路  4Comments

zero77 picture zero77  路  4Comments

whitesnakeftw picture whitesnakeftw  路  3Comments

cadatoiva picture cadatoiva  路  3Comments

RoloSoze picture RoloSoze  路  4Comments