|  | @@ -39,6 +39,8 @@ message Date {
 | 
	
		
			
				|  |  |      optional sint32 year = 0x1;
 | 
	
		
			
				|  |  |      optional sint32 month = 0x2;
 | 
	
		
			
				|  |  |      optional sint32 day = 0x3;
 | 
	
		
			
				|  |  | +    optional sint32 hour = 0x4;
 | 
	
		
			
				|  |  | +    optional sint32 minute = 0x5;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  message Album {
 | 
	
	
		
			
				|  | @@ -124,15 +126,29 @@ message Copyright {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  message Restriction {
 | 
	
		
			
				|  |  | -    optional string countries_allowed = 0x2;
 | 
	
		
			
				|  |  | -    optional string countries_forbidden = 0x3;
 | 
	
		
			
				|  |  | -    optional Type typ = 0x4;
 | 
	
		
			
				|  |  | +    enum Catalogue {
 | 
	
		
			
				|  |  | +      AD = 0;
 | 
	
		
			
				|  |  | +      SUBSCRIPTION = 1;
 | 
	
		
			
				|  |  | +      CATALOGUE_ALL = 2;
 | 
	
		
			
				|  |  | +      SHUFFLE = 3;
 | 
	
		
			
				|  |  | +      COMMERCIAL = 4;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |      enum Type {
 | 
	
		
			
				|  |  |          STREAMING = 0x0;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    repeated Catalogue catalogue = 0x1;
 | 
	
		
			
				|  |  | +    optional string countries_allowed = 0x2;
 | 
	
		
			
				|  |  | +    optional string countries_forbidden = 0x3;
 | 
	
		
			
				|  |  | +    optional Type typ = 0x4;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      repeated string catalogue_str = 0x5;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +message Availability {
 | 
	
		
			
				|  |  | +	repeated string catalogue_str = 0x1;
 | 
	
		
			
				|  |  | +	optional Date start = 0x2;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  message SalePeriod {
 | 
	
		
			
				|  |  |      repeated Restriction restriction = 0x1;
 | 
	
		
			
				|  |  |      optional Date start = 0x2;
 | 
	
	
		
			
				|  | @@ -156,6 +172,9 @@ message AudioFile {
 | 
	
		
			
				|  |  |          MP3_160 = 0x5;
 | 
	
		
			
				|  |  |          MP3_96 = 0x6;
 | 
	
		
			
				|  |  |          MP3_160_ENC = 0x7;
 | 
	
		
			
				|  |  | +        // v4 
 | 
	
		
			
				|  |  | +        // AAC_24 = 0x8;
 | 
	
		
			
				|  |  | +        // AAC_48 = 0x9;
 | 
	
		
			
				|  |  |          MP4_128_DUAL = 0x8;
 | 
	
		
			
				|  |  |          OTHER3 = 0x9;
 | 
	
		
			
				|  |  |          AAC_160 = 0xa;
 | 
	
	
		
			
				|  | @@ -165,70 +184,74 @@ message AudioFile {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -// Podcast Protos
 | 
	
		
			
				|  |  | -message PublishTime {
 | 
	
		
			
				|  |  | -    optional sint32 year = 0x1;
 | 
	
		
			
				|  |  | -    optional sint32 month = 0x2;
 | 
	
		
			
				|  |  | -    optional sint32 day = 0x3;
 | 
	
		
			
				|  |  | -    // These seem to be differently encoded
 | 
	
		
			
				|  |  | -    optional sint32 minute = 0x5;
 | 
	
		
			
				|  |  | -    optional sint32 hour = 0x4;
 | 
	
		
			
				|  |  | +message VideoFile {
 | 
	
		
			
				|  |  | +	optional bytes file_id = 1;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +// Podcast Protos
 | 
	
		
			
				|  |  |  message Show {
 | 
	
		
			
				|  |  | +  enum MediaType {
 | 
	
		
			
				|  |  | +      MIXED = 0;
 | 
	
		
			
				|  |  | +      AUDIO = 1;
 | 
	
		
			
				|  |  | +      VIDEO = 2;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  enum ConsumptionOrder {
 | 
	
		
			
				|  |  | +      SEQUENTIAL = 1;
 | 
	
		
			
				|  |  | +      EPISODIC = 2;
 | 
	
		
			
				|  |  | +      RECENT = 3;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  enum PassthroughEnum {
 | 
	
		
			
				|  |  | +      UNKNOWN = 0;
 | 
	
		
			
				|  |  | +      NONE = 1;
 | 
	
		
			
				|  |  | +      ALLOWED = 2;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |    optional bytes gid = 0x1;
 | 
	
		
			
				|  |  |    optional string name = 0x2;
 | 
	
		
			
				|  |  | -  repeated Episode episode = 0x46;
 | 
	
		
			
				|  |  | -  // Educated guesses
 | 
	
		
			
				|  |  |    optional string description = 0x40;
 | 
	
		
			
				|  |  | +  optional sint32 deprecated_popularity = 0x41;
 | 
	
		
			
				|  |  |    optional string publisher = 0x42;
 | 
	
		
			
				|  |  |    optional string language = 0x43;
 | 
	
		
			
				|  |  |    optional bool explicit = 0x44;
 | 
	
		
			
				|  |  |    optional ImageGroup covers = 0x45;
 | 
	
		
			
				|  |  | +  repeated Episode episode = 0x46;
 | 
	
		
			
				|  |  | +  repeated Copyright copyright = 0x47;
 | 
	
		
			
				|  |  |    repeated Restriction restriction = 0x48;
 | 
	
		
			
				|  |  | +  repeated string keyword = 0x49;
 | 
	
		
			
				|  |  |    optional MediaType media_type = 0x4A;
 | 
	
		
			
				|  |  |    optional ConsumptionOrder consumption_order = 0x4B;
 | 
	
		
			
				|  |  |    optional bool interpret_restriction_using_geoip = 0x4C;
 | 
	
		
			
				|  |  | +  repeated Availability availability = 0x4E;
 | 
	
		
			
				|  |  |    optional string country_of_origin = 0x4F;	
 | 
	
		
			
				|  |  |    repeated Category categories = 0x50;
 | 
	
		
			
				|  |  |    optional PassthroughEnum passthrough = 0x51;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -enum ConsumptionOrder {
 | 
	
		
			
				|  |  | -    SEQUENTIAL = 1;
 | 
	
		
			
				|  |  | -    EPISODIC = 2;
 | 
	
		
			
				|  |  | -    RECENT = 3;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -enum MediaType {
 | 
	
		
			
				|  |  | -    MIXED = 0;
 | 
	
		
			
				|  |  | -    AUDIO = 1;
 | 
	
		
			
				|  |  | -    VIDEO = 2;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -enum PassthroughEnum {
 | 
	
		
			
				|  |  | -    UNKNOWN = 0;
 | 
	
		
			
				|  |  | -    NONE = 1;
 | 
	
		
			
				|  |  | -    ALLOWED = 2;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  message Episode {
 | 
	
		
			
				|  |  |    optional bytes gid = 0x1;
 | 
	
		
			
				|  |  |    optional string name = 0x2;
 | 
	
		
			
				|  |  |    optional sint32 duration = 0x7;
 | 
	
		
			
				|  |  |    optional sint32 popularity = 0x8;
 | 
	
		
			
				|  |  |    repeated AudioFile file = 0xc;
 | 
	
		
			
				|  |  | -  // Educated guesses 
 | 
	
		
			
				|  |  |    optional string description = 0x40;
 | 
	
		
			
				|  |  | +  optional sint32 number = 0x41;
 | 
	
		
			
				|  |  |    optional Date publish_time = 0x42;
 | 
	
		
			
				|  |  | +  optional sint32 deprecated_popularity = 0x43;
 | 
	
		
			
				|  |  |    optional ImageGroup covers = 0x44;
 | 
	
		
			
				|  |  |    optional string language = 0x45;
 | 
	
		
			
				|  |  |    optional bool explicit = 0x46;
 | 
	
		
			
				|  |  |    optional Show show = 0x47;
 | 
	
		
			
				|  |  | -  repeated AudioFile preview = 0x4A;
 | 
	
		
			
				|  |  | +  repeated VideoFile video = 0x48;
 | 
	
		
			
				|  |  | +	repeated VideoFile video_preview = 0x49;
 | 
	
		
			
				|  |  | +  repeated AudioFile audio_preview = 0x4A;
 | 
	
		
			
				|  |  |    repeated Restriction restriction = 0x4B;
 | 
	
		
			
				|  |  | -  // Order of these flags might be wrong! 
 | 
	
		
			
				|  |  | +  optional ImageGroup freeze_frame = 0x4C;
 | 
	
		
			
				|  |  | +  repeated string keyword = 0x4D;
 | 
	
		
			
				|  |  | +  // Order of these two flags might be wrong! 
 | 
	
		
			
				|  |  |    optional bool suppress_monetization = 0x4E;
 | 
	
		
			
				|  |  | -  optional bool allow_background_playback = 0x4F;
 | 
	
		
			
				|  |  | -  optional bool interpret_restriction_using_geoip = 0x51;
 | 
	
		
			
				|  |  | +  optional bool interpret_restriction_using_geoip = 0x4F;
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  optional bool allow_background_playback = 0x51;
 | 
	
		
			
				|  |  | +  repeated Availability availability = 0x52;
 | 
	
		
			
				|  |  |    optional string external_url = 0x53;
 | 
	
		
			
				|  |  |    optional OriginalAudio original_audio = 0x54;
 | 
	
		
			
				|  |  |  }
 |