我有一个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“)”错误。在
protoc
的输入是一个声明协议整体结构的.proto
源文件。看起来您正试图将实际消息用作输入。这行不通,这不是一回事。在不存在从消息实例对
.proto
文件进行反向工程的自动化方法,因为编码的消息不包含类型名或字段名之类的内容,并且只包含关于实际字段类型的有限信息。您可以使用decode_raw
的输出来猜测原始的.proto
文件,但这是一个逆向工程任务,需要人工分析,而不是程序可以完成的任务。在相关问题 更多 >
编程相关推荐