Giter Club home page Giter Club logo

Comments (8)

Maasea avatar Maasea commented on July 28, 2024

I have tested Youtube 18.48.3 on IPad OS 16.7.2. and it works well.

I have not received similar reports from other users.

Are you using Surge?

from sgmodule.

FrontMage avatar FrontMage commented on July 28, 2024

No, I'm writing my client, similar to Surge, using quickjs to load the script, but I don't think it's the problem with quickjs, since I put the script and the data into node, it can't produce any result.
You can check this link https://github.com/FrontMage/web3d/releases/download/1.0.0/err.js for details, I think some of the YouTube users are experiencing a protocol change.
Just update const req = fs.readFileSync("../reqbody.dump"); to previous downloaded reqbody.dump path, then run node err.js you will seed that the result of v.body is undefined, the code between console.log("Before eval"); and console.log("After eval"); is the code from https://raw.githubusercontent.com/Maasea/sgmodule/master/Script/Youtube/dist/youtube.request.beta.js

from sgmodule.

FrontMage avatar FrontMage commented on July 28, 2024

To add on top of the protocol change, if I use the request dump from a month before, then everything is fine.
image
But the recent request body will cause v.body to be an undefined value.
image
Previous body can be found on https://github.com/FrontMage/web3d/releases/download/1.0.0/browse-request-1.log

from sgmodule.

Maasea avatar Maasea commented on July 28, 2024

I see what you mean.

The first thing I'd like to ask is how reqbody.dump is captured, I tried to parse it using protoc but it prompted a format error, which means it’s probably not a protobuf.

BTW, I'm debugging the script with a body exported using surge, and it works with node after removing some of the built-in methods ($request, $done, etc.)

from sgmodule.

FrontMage avatar FrontMage commented on July 28, 2024

I wrote a MIMT program to intercept https traffic, and it is dumped from the MIMT request intercept section, so maybe there is something wrong with MIMT broke the protobuf, l'll try debug from here, maybe it's using quic? Since I did not block some of the UDP traffic.

from sgmodule.

Maasea avatar Maasea commented on July 28, 2024

As far as I know, only mitmproxy is perfecting quic-based mitm. None of the commonly used proxy tools support it, but of course it would be great if you develop an app that supports this feature. So, for YouTube traffic capture are based on TCP (HTTPS).

You can use other apps to capture the body first to further investigate.

from sgmodule.

FrontMage avatar FrontMage commented on July 28, 2024

Sure, I'm trying to use Charles to debug this.

from sgmodule.

FrontMage avatar FrontMage commented on July 28, 2024

Issue found, https://youtubei.googleapis.com/youtubei/v1/browse?key=AIzaSyB-63vPrdThhKuerbB2N_l7Kwwcxj6yUAc this url sometimes produces none protobuf requests, instead of just panic, If I return the origin request body, it will work, I suspect surge and others are doing the same. Thx for the help!

from sgmodule.

Related Issues (20)

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.