YTIPlayerRequest
TODO:
- 【未解决】研究YouTube逻辑:YTIPlayerRequest的descriptor
- 【未解决】研究YouTube逻辑:YTIPlayerRequest的context的protobuf的number不一致
- 【已解决】研究YouTube逻辑:通过GPBFieldDescriptor调试出YTIPlayerRequest的protobuf的属性字段定义
YTIPlayerRequest
的protobuf
的字段定义
推导出YTIPlayerRequest
的protobuf
的字段定义,大概类似于:
message YTIPlayerRequest {
YTIInnerTubeContext *context = 1;
NSString *videoId = 2;
_Bool contentCheckOk = 3;
YTIPlaybackContext *playbackContext = 4;
_Bool racyCheckOk = 5;
NSString *id_p = 6;
NSString *t = 7;
_Bool forOffline = 8;
NSString *playlistId = 9;
int playlistIndex = 10;
unsigned int startTimeSecs = 11;
NSString *params = 12;
??? = 13;
NSData *offlineSharingWrappedKey = 14;
GPBInt32Array *installedSharingServiceIdsArray = 15;
YTIPlayerAttestationRequestData *attestationRequest = 16;
NSString *referringApp = 17;
NSString *referrer = 18;
NSString *serializedThirdPartyEmbedConfig = 19;
_Bool proxiedByOnesie = 20;
??? = 21;
NSString *hostAppToken = 22;
NSString *cpn = 23;
??? = 24;
_Bool overrideMutedAtStart = 25;
YTIPlayerRequestCaptionParams *captionParams = 26;
??? = 27;
YTIPlayerRequestVideoQualitySettingParams *videoQualitySettingParams = 28;
}
YTIPlayerRequest
类的头文件定义
header_ModuleFramework/YTIPlayerRequest.h
//
// Generated by class-dump 3.5 (64 bit) (Debug version compiled Sep 17 2017 16:24:48).
//
// class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2015 by Steve Nygard.
//
#import <Module_Framework/GPBMessage.h>
#import <Module_Framework/YTInnerTubeResponseCacheKeyProtocol-Protocol.h>
@class GPBInt32Array, NSData, NSString, YTIInnerTubeContext, YTIPlaybackContext, YTIPlayerAttestationRequestData, YTIPlayerRequestCaptionParams, YTIPlayerRequestVideoQualitySettingParams;
@interface YTIPlayerRequest : GPBMessage <YTInnerTubeResponseCacheKeyProtocol>
{
}
+ (id)descriptor;
- (id)innerTubeResponseCacheKeyWithService:(long long)arg1 coldConfig:(id)arg2;
- (_Bool)autoplay;
- (unsigned long long)autoplaysSinceLastAd;
// Remaining properties
@property(retain, nonatomic) YTIPlayerAttestationRequestData *attestationRequest; // @dynamic attestationRequest;
@property(retain, nonatomic) YTIPlayerRequestCaptionParams *captionParams; // @dynamic captionParams;
@property(nonatomic) _Bool contentCheckOk; // @dynamic contentCheckOk;
@property(retain, nonatomic) YTIInnerTubeContext *context; // @dynamic context;
@property(copy, nonatomic) NSString *cpn; // @dynamic cpn;
@property(readonly, copy) NSString *debugDescription;
@property(readonly, copy) NSString *description;
@property(nonatomic) _Bool forOffline; // @dynamic forOffline;
@property(nonatomic) _Bool hasAttestationRequest; // @dynamic hasAttestationRequest;
@property(nonatomic) _Bool hasCaptionParams; // @dynamic hasCaptionParams;
@property(nonatomic) _Bool hasContentCheckOk; // @dynamic hasContentCheckOk;
@property(nonatomic) _Bool hasContext; // @dynamic hasContext;
@property(nonatomic) _Bool hasCpn; // @dynamic hasCpn;
@property(nonatomic) _Bool hasForOffline; // @dynamic hasForOffline;
@property(nonatomic) _Bool hasHostAppToken; // @dynamic hasHostAppToken;
@property(nonatomic) _Bool hasId_p; // @dynamic hasId_p;
@property(nonatomic) _Bool hasOfflineSharingWrappedKey; // @dynamic hasOfflineSharingWrappedKey;
@property(nonatomic) _Bool hasOverrideMutedAtStart; // @dynamic hasOverrideMutedAtStart;
@property(nonatomic) _Bool hasParams; // @dynamic hasParams;
@property(nonatomic) _Bool hasPlaybackContext; // @dynamic hasPlaybackContext;
@property(nonatomic) _Bool hasPlaylistId; // @dynamic hasPlaylistId;
@property(nonatomic) _Bool hasPlaylistIndex; // @dynamic hasPlaylistIndex;
@property(nonatomic) _Bool hasProxiedByOnesie; // @dynamic hasProxiedByOnesie;
@property(nonatomic) _Bool hasRacyCheckOk; // @dynamic hasRacyCheckOk;
@property(nonatomic) _Bool hasReferrer; // @dynamic hasReferrer;
@property(nonatomic) _Bool hasReferringApp; // @dynamic hasReferringApp;
@property(nonatomic) _Bool hasSerializedThirdPartyEmbedConfig; // @dynamic hasSerializedThirdPartyEmbedConfig;
@property(nonatomic) _Bool hasStartTimeSecs; // @dynamic hasStartTimeSecs;
@property(nonatomic) _Bool hasT; // @dynamic hasT;
@property(nonatomic) _Bool hasVideoId; // @dynamic hasVideoId;
@property(nonatomic) _Bool hasVideoQualitySettingParams; // @dynamic hasVideoQualitySettingParams;
@property(readonly) unsigned long long hash;
@property(copy, nonatomic) NSString *hostAppToken; // @dynamic hostAppToken;
@property(copy, nonatomic) NSString *id_p; // @dynamic id_p;
@property(retain, nonatomic) GPBInt32Array *installedSharingServiceIdsArray; // @dynamic installedSharingServiceIdsArray;
@property(readonly, nonatomic) unsigned long long installedSharingServiceIdsArray_Count; // @dynamic installedSharingServiceIdsArray_Count;
@property(copy, nonatomic) NSData *offlineSharingWrappedKey; // @dynamic offlineSharingWrappedKey;
@property(nonatomic) _Bool overrideMutedAtStart; // @dynamic overrideMutedAtStart;
@property(copy, nonatomic) NSString *params; // @dynamic params;
@property(retain, nonatomic) YTIPlaybackContext *playbackContext; // @dynamic playbackContext;
@property(copy, nonatomic) NSString *playlistId; // @dynamic playlistId;
@property(nonatomic) int playlistIndex; // @dynamic playlistIndex;
@property(nonatomic) _Bool proxiedByOnesie; // @dynamic proxiedByOnesie;
@property(nonatomic) _Bool racyCheckOk; // @dynamic racyCheckOk;
@property(copy, nonatomic) NSString *referrer; // @dynamic referrer;
@property(copy, nonatomic) NSString *referringApp; // @dynamic referringApp;
@property(copy, nonatomic) NSString *serializedThirdPartyEmbedConfig; // @dynamic serializedThirdPartyEmbedConfig;
@property(nonatomic) unsigned int startTimeSecs; // @dynamic startTimeSecs;
@property(readonly) Class superclass;
@property(copy, nonatomic) NSString *t; // @dynamic t;
@property(copy, nonatomic) NSString *videoId; // @dynamic videoId;
@property(retain, nonatomic) YTIPlayerRequestVideoQualitySettingParams *videoQualitySettingParams; // @dynamic videoQualitySettingParams;
@end