从application/xprotobuf fi生成python类

2024-04-24 06:38:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本,它从youtube接收application/x-protobuf文件。 文件的这一部分

*youtubei#playerResponse
\862\94

yt_ad1\83
e~11200142,901816,936105,9407053,9407664,9407715,9408142,9410705,9412913,9415294,9416137,9417116,9417192,9417455,9418117,94182142\88\83
e~11200142,901816,936105,9407053,9407664,9407715,9408142,9410705,9412913,9415294,9416137,9417116,9417192,9417455,9418117,94182142\D6+
InnerTubeBuildLabelyoutube_20150727_RC2
InnerTubeChangelist99168778\83
e~11200142,901816,936105,9407053,9407664,9407715,9408142,9410705,9412913,9415294,9416137,9417116,9417192,9417455,9418117,94182142\88&
innertube.build.changelist99168778-
innertube.build.labelyoutube_20150727_RC2'
innertube.build.timestamp
1437996969E
!innertube.build.variants.checksum 47cbe83e1d9f5a44654ab7896473362e
innertube.client_name3!
innertube.client_version10.28z\BC\9A\EF\CA\DC\A2\80\C8 \E0](\A8F0\88\A48\98u@\B0\EAM\CD\CCL?U\CD\CCL?]\00\00@?`2h\E42p\C0>x\80\88\C4\90\98\A0\00\AD\00\00\00\00\B0\00\B8\00\C0\C8Ќ\D0\00\D8\E0\E8\C7\F0d\F8\00\80\90\00\98\00\C0\00\C8\A0\A8\00\B5\00\00\A0B\B8\00\D8\00\E0\00\E8\00\F0\F0\F8\80\00\88\00\90\00\B2ϭ\D3
\00\00 \C1\A2\DFޜ\00Z\AD

我想从这个文件生成python类。 我用protoc来解码文件

^{pr2}$

然后我使用这个命令来生成类

protoc -I=/root --python_out=$DST_DIR /root/decoded_file

但是这个命令总是返回“预期的顶级语句(例如”message“)”错误。在


Tags: 文件buildclienta2cdb0a0ad
1条回答
网友
1楼 · 发布于 2024-04-24 06:38:00

protoc的输入是一个声明协议整体结构的.proto源文件。看起来您正试图将实际消息用作输入。这行不通,这不是一回事。在

不存在从消息实例对.proto文件进行反向工程的自动化方法,因为编码的消息不包含类型名或字段名之类的内容,并且只包含关于实际字段类型的有限信息。您可以使用 decode_raw的输出来猜测原始的.proto文件,但这是一个逆向工程任务,需要人工分析,而不是程序可以完成的任务。在

相关问题 更多 >