update protobuf definitions

This commit is contained in:
Felix Prillwitz 2024-12-15 20:51:02 +01:00
parent 2a6d7545ca
commit 1a97247727
No known key found for this signature in database
GPG key ID: DE334B43606D1455
292 changed files with 2396 additions and 1035 deletions

View file

@ -1,4 +1,4 @@
// No longer present in Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -19,7 +19,7 @@ message ListDevicesResponse {
message PutDeviceRequest { message PutDeviceRequest {
string user_id = 1; string user_id = 1;
Body body = 2; Body body = 2;
message Body { message Body {
Device device = 1; Device device = 1;
@ -39,8 +39,27 @@ message RemoveDeviceRequest {
bool is_force_remove = 2; bool is_force_remove = 2;
} }
message OfflineEnableDeviceRequest {
message Body {
bool auto_opc = 1;
}
DeviceKey key = 1;
Body body = 2;
string name = 9;
int32 platform = 7;
string client_id = 8;
}
message OfflineEnableDeviceResponse { message OfflineEnableDeviceResponse {
enum StatusCode {
UNKNOWN = 0;
OK = 1;
DEVICE_LIMIT_REACHED = 2;
}
Restrictions restrictions = 1; Restrictions restrictions = 1;
StatusCode status_code = 2;
} }
message ListResourcesResponse { message ListResourcesResponse {
@ -50,7 +69,7 @@ message ListResourcesResponse {
message WriteResourcesRequest { message WriteResourcesRequest {
DeviceKey key = 1; DeviceKey key = 1;
Body body = 2; Body body = 2;
message Body { message Body {
repeated ResourceOperation operations = 1; repeated ResourceOperation operations = 1;
@ -66,7 +85,7 @@ message ResourcesUpdate {
message DeltaResourcesRequest { message DeltaResourcesRequest {
DeviceKey key = 1; DeviceKey key = 1;
Body body = 2; Body body = 2;
message Body { message Body {
google.protobuf.Timestamp last_known_server_time = 1; google.protobuf.Timestamp last_known_server_time = 1;
@ -90,7 +109,7 @@ message GetResourceResponse {
message WriteResourcesDetailsRequest { message WriteResourcesDetailsRequest {
DeviceKey key = 1; DeviceKey key = 1;
Body body = 2; Body body = 2;
message Body { message Body {
repeated Resource resources = 1; repeated Resource resources = 1;
@ -106,3 +125,39 @@ message GetResourceForDevicesResponse {
repeated Device devices = 1; repeated Device devices = 1;
repeated ResourceForDevice resources = 2; repeated ResourceForDevice resources = 2;
} }
message ListDevicesWithResourceRequest {
message Body {
string uri = 1;
}
string user_id = 1;
string username = 2;
Body body = 3;
}
message ListDevicesWithResourceResponse {
message DeviceWithResource {
Device device = 1;
bool is_supported = 2;
optional Resource resource = 3;
}
repeated DeviceWithResource deviceWithResource = 1;
FetchStrategy fetch_strategy = 2;
}
message FetchStrategy {
oneof fetch_strategy {
PollStrategy poll_strategy = 1;
SubStrategy sub_strategy = 2;
}
}
message PollStrategy {
int32 interval_ms = 1;
}
message SubStrategy {
}

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -15,13 +15,15 @@ message NormalizationParams {
} }
message ExtendedAudioFile { message ExtendedAudioFile {
reserved 2;
reserved 3;
metadata.AudioFile file = 1; metadata.AudioFile file = 1;
NormalizationParams file_normalization_params = 2; int32 average_bitrate = 4;
NormalizationParams album_normalization_params = 3;
} }
message AudioFilesExtensionResponse { message AudioFilesExtensionResponse {
repeated ExtendedAudioFile files = 1; repeated ExtendedAudioFile files = 1;
NormalizationParams default_file_normalization_params = 2; NormalizationParams default_file_normalization_params = 2;
NormalizationParams default_album_normalization_params = 3; NormalizationParams default_album_normalization_params = 3;
bytes audio_id = 4;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -32,10 +32,14 @@ enum AutomixStyle {
SLEEP = 5; SLEEP = 5;
MIXED = 6; MIXED = 6;
CUSTOM = 7; CUSTOM = 7;
HEURISTIC = 8;
BACKEND = 9;
} }
enum TransitionType { enum TransitionType {
CUEPOINTS = 0; CUEPOINTS = 0;
CROSSFADE = 1; CROSSFADE = 1;
GAPLESS = 2; GAPLESS = 2;
HEURISTIC_TRANSITION = 3;
BACKEND_TRANSITION = 4;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";
@ -9,4 +9,5 @@ option optimize_for = CODE_SIZE;
message AutoplayContextRequest { message AutoplayContextRequest {
required string context_uri = 1; required string context_uri = 1;
repeated string recent_track_uri = 2; repeated string recent_track_uri = 2;
optional bool is_video = 3;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";
@ -12,4 +12,5 @@ message AutoplayNode {
map<string, bytes> filler_node = 1; map<string, bytes> filler_node = 1;
required bool is_playing_filler = 2; required bool is_playing_filler = 2;
required LoggingParams logging_params = 3; required LoggingParams logging_params = 3;
optional bool called_play_on_filler = 4;
} }

View file

@ -1,11 +1,9 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
package spotify.canvaz.cache; package spotify.canvaz.cache;
import "canvaz-meta.proto";
option java_multiple_files = true; option java_multiple_files = true;
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
option java_package = "com.spotify.canvazcache.proto"; option java_package = "com.spotify.canvazcache.proto";
@ -17,12 +15,11 @@ message Artist {
} }
message EntityCanvazResponse { message EntityCanvazResponse {
repeated Canvaz canvases = 1;
message Canvaz { message Canvaz {
string id = 1; string id = 1;
string url = 2; string url = 2;
string file_id = 3; string file_id = 3;
spotify.canvaz.Type type = 4; Type type = 4;
string entity_uri = 5; string entity_uri = 5;
Artist artist = 6; Artist artist = 6;
bool explicit = 7; bool explicit = 7;
@ -31,14 +28,14 @@ message EntityCanvazResponse {
string canvas_uri = 11; string canvas_uri = 11;
string storylines_id = 12; string storylines_id = 12;
} }
int64 ttl_in_seconds = 2;
} }
message EntityCanvazRequest { enum Type {
repeated Entity entities = 1; IMAGE = 0;
message Entity { VIDEO = 1;
string entity_uri = 1; VIDEO_LOOPING = 2;
string etag = 2; VIDEO_LOOPING_RANDOM = 3;
} GIF = 4;
} }

View file

@ -1,8 +1,8 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
package spotify.narration_injection.proto; package spotify.narration.proto;
import "tts-resolve.proto"; import "tts-resolve.proto";
@ -18,7 +18,6 @@ message TtsRequest {
ResolveRequest.TtsVoice tts_voice = 5; ResolveRequest.TtsVoice tts_voice = 5;
ResolveRequest.TtsProvider tts_provider = 6; ResolveRequest.TtsProvider tts_provider = 6;
int32 sample_rate_hz = 7; int32 sample_rate_hz = 7;
oneof prompt { oneof prompt {
string text = 1; string text = 1;
string ssml = 2; string ssml = 2;

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";
@ -15,4 +15,5 @@ message ArtistCollectionState {
optional uint32 num_albums_in_collection = 4; optional uint32 num_albums_in_collection = 4;
optional bool is_banned = 5; optional bool is_banned = 5;
optional bool can_ban = 6; optional bool can_ban = 6;
optional uint32 num_explicitly_liked_tracks = 7;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -18,6 +18,7 @@ message CollectionItem {
string uri = 1; string uri = 1;
int32 added_at = 2; int32 added_at = 2;
bool is_removed = 3; bool is_removed = 3;
optional string context_uri = 4;
} }
message PageResponse { message PageResponse {
@ -45,13 +46,6 @@ message WriteRequest {
string client_update_id = 4; string client_update_id = 4;
} }
message PubSubUpdate {
string username = 1;
string set = 2;
repeated CollectionItem items = 3;
string client_update_id = 4;
}
message InitializedRequest { message InitializedRequest {
string username = 1; string username = 1;
string set = 2; string set = 2;

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -6,12 +6,15 @@ package spotify.collection_cosmos.proto;
import "status.proto"; import "status.proto";
option java_package = "spotify.collection.esperanto.proto";
option java_multiple_files = true;
option objc_class_prefix = "ESP";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message CollectionAddRemoveItemsRequest { message CollectionAddRemoveItemsRequest {
repeated string item = 1; repeated string uri = 1;
} }
message CollectionAddRemoveItemsResponse { message CollectionAddRemoveItemsResponse {
Status status = 1; Status status = 1;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -6,6 +6,9 @@ package spotify.collection_cosmos.proto;
import "status.proto"; import "status.proto";
option java_package = "spotify.collection.esperanto.proto";
option java_multiple_files = true;
option objc_class_prefix = "ESP";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message CollectionBanRequest { message CollectionBanRequest {

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -7,7 +7,12 @@ package spotify.collection_cosmos.proto;
import "policy/artist_decoration_policy.proto"; import "policy/artist_decoration_policy.proto";
import "policy/album_decoration_policy.proto"; import "policy/album_decoration_policy.proto";
import "policy/track_decoration_policy.proto"; import "policy/track_decoration_policy.proto";
import "policy/show_decoration_policy.proto";
import "policy/episode_decoration_policy.proto";
option java_package = "spotify.collection.esperanto.proto";
option java_multiple_files = true;
option objc_class_prefix = "ESP";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message CollectionArtistDecorationPolicy { message CollectionArtistDecorationPolicy {
@ -35,4 +40,22 @@ message CollectionTrackDecorationPolicy {
CollectionAlbumDecorationPolicy album_policy = 5; CollectionAlbumDecorationPolicy album_policy = 5;
cosmos_util.proto.ArtistDecorationPolicy artist_policy = 6; cosmos_util.proto.ArtistDecorationPolicy artist_policy = 6;
bool decorated = 7; bool decorated = 7;
cosmos_util.proto.ArtistCollectionDecorationPolicy artist_collection_policy = 8;
} }
message CollectionShowDecorationPolicy {
cosmos_util.proto.ShowDecorationPolicy show_policy = 1;
cosmos_util.proto.ShowPlayedStateDecorationPolicy played_state_policy = 2;
cosmos_util.proto.ShowCollectionDecorationPolicy collection_policy = 3;
bool decorated = 4;
}
message CollectionEpisodeDecorationPolicy {
cosmos_util.proto.EpisodeDecorationPolicy episode_policy = 1;
cosmos_util.proto.EpisodeCollectionDecorationPolicy collection_policy = 2;
cosmos_util.proto.EpisodeSyncDecorationPolicy sync_policy = 3;
cosmos_util.proto.EpisodePlayedStateDecorationPolicy played_state_policy = 4;
CollectionShowDecorationPolicy show_policy = 5;
bool decorated = 6;
}

View file

@ -1,21 +1,21 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
package spotify.collection_cosmos.proto; package spotify.collection_cosmos.proto;
import "policy/track_decoration_policy.proto"; import "collection_decoration_policy.proto";
import "policy/artist_decoration_policy.proto"; import "collection_item.proto";
import "metadata/track_metadata.proto";
import "metadata/artist_metadata.proto";
import "status.proto"; import "status.proto";
option java_multiple_files = true;
option java_package = "spotify.collection.esperanto.proto";
option objc_class_prefix = "SPTCollectionCosmos"; option objc_class_prefix = "SPTCollectionCosmos";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message CollectionGetBansRequest { message CollectionGetBansRequest {
cosmos_util.proto.TrackDecorationPolicy track_policy = 1; CollectionTrackDecorationPolicy track_policy = 1;
cosmos_util.proto.ArtistDecorationPolicy artist_policy = 2; CollectionArtistDecorationPolicy artist_policy = 2;
string sort = 3; string sort = 3;
bool timestamp = 4; bool timestamp = 4;
uint32 update_throttling = 5; uint32 update_throttling = 5;
@ -23,8 +23,8 @@ message CollectionGetBansRequest {
message Item { message Item {
uint32 add_time = 1; uint32 add_time = 1;
cosmos_util.proto.TrackMetadata track_metadata = 2; CollectionTrack track_metadata = 2;
cosmos_util.proto.ArtistMetadata artist_metadata = 3; CollectionArtist artist_metadata = 3;
} }
message CollectionGetBansResponse { message CollectionGetBansResponse {

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -11,6 +11,10 @@ message IndexRepairerState {
int64 last_full_check_finished_at = 2; int64 last_full_check_finished_at = 2;
} }
message AddTime {
int64 timestamp = 1;
}
message CollectionTrackEntry { message CollectionTrackEntry {
string uri = 1; string uri = 1;
string track_name = 2; string track_name = 2;
@ -23,16 +27,52 @@ message CollectionTrackEntry {
int64 add_time = 9; int64 add_time = 9;
} }
message CollectionAlbumLikeEntry { message CollectionAlbumEntry {
string uri = 1; string uri = 1;
string album_name = 2; string album_name = 2;
string creator_uri = 4; string artist_uri = 4;
string artist_name = 5;
int64 add_time = 6;
int64 last_played = 8;
int64 release_date = 9;
}
message CollectionShowEntry {
string uri = 1;
string show_name = 2;
string creator_name = 5; string creator_name = 5;
int64 add_time = 6; int64 add_time = 6;
int64 publish_date = 7;
int64 last_played = 8;
}
message CollectionBookEntry {
string uri = 1;
string book_name = 2;
string author_name = 5;
int64 add_time = 6;
int64 last_played = 8;
} }
message CollectionArtistEntry { message CollectionArtistEntry {
string uri = 1; string uri = 1;
string artist_name = 2; string artist_name = 2;
int64 add_time = 4; int64 add_time = 4;
int64 last_played = 8;
} }
message CollectionAuthorEntry {
string uri = 1;
string author_name = 2;
int64 add_time = 4;
}
message CollectionEpisodeEntry {
string uri = 1;
string episode_name = 2;
string show_uri = 3;
string show_name = 4;
int64 add_time = 5;
int64 publish_time = 6;
}

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -7,14 +7,24 @@ package spotify.collection_cosmos.proto;
import "metadata/album_metadata.proto"; import "metadata/album_metadata.proto";
import "metadata/artist_metadata.proto"; import "metadata/artist_metadata.proto";
import "metadata/track_metadata.proto"; import "metadata/track_metadata.proto";
import "metadata/show_metadata.proto";
import "metadata/episode_metadata.proto";
import "collection/artist_collection_state.proto"; import "collection/artist_collection_state.proto";
import "collection/album_collection_state.proto"; import "collection/album_collection_state.proto";
import "collection/track_collection_state.proto"; import "collection/track_collection_state.proto";
import "collection/show_collection_state.proto";
import "collection/episode_collection_state.proto";
import "sync/artist_sync_state.proto"; import "sync/artist_sync_state.proto";
import "sync/album_sync_state.proto"; import "sync/album_sync_state.proto";
import "sync/track_sync_state.proto"; import "sync/track_sync_state.proto";
import "sync/episode_sync_state.proto";
import "played_state/track_played_state.proto"; import "played_state/track_played_state.proto";
import "played_state/show_played_state.proto";
import "played_state/episode_played_state.proto";
option java_package = "spotify.collection.esperanto.proto";
option java_multiple_files = true;
option objc_class_prefix = "ESP";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message CollectionTrack { message CollectionTrack {
@ -27,6 +37,8 @@ message CollectionTrack {
bool decorated = 7; bool decorated = 7;
CollectionAlbum album = 8; CollectionAlbum album = 8;
string cover = 9; string cover = 9;
string link = 10;
repeated cosmos_util.proto.ArtistCollectionState artist_collection_state = 11;
} }
message CollectionAlbum { message CollectionAlbum {
@ -37,6 +49,7 @@ message CollectionAlbum {
bool decorated = 5; bool decorated = 5;
string album_type = 6; string album_type = 6;
repeated CollectionTrack track = 7; repeated CollectionTrack track = 7;
string link = 11;
} }
message CollectionArtist { message CollectionArtist {
@ -45,4 +58,23 @@ message CollectionArtist {
cosmos_util.proto.ArtistSyncState artist_sync_state = 3; cosmos_util.proto.ArtistSyncState artist_sync_state = 3;
bool decorated = 4; bool decorated = 4;
repeated CollectionAlbum album = 5; repeated CollectionAlbum album = 5;
string link = 6;
} }
message CollectionShow {
cosmos_util.proto.ShowMetadata show_metadata = 1;
cosmos_util.proto.ShowCollectionState show_collection_state = 2;
cosmos_util.proto.ShowPlayState show_play_state = 3;
uint32 add_time = 4;
string link = 5;
}
message CollectionEpisode {
cosmos_util.proto.EpisodeMetadata episode_metadata = 1;
cosmos_util.proto.EpisodeCollectionState episode_collection_state = 2;
cosmos_util.proto.EpisodeSyncState episode_offline_state = 3;
cosmos_util.proto.EpisodePlayState episode_play_state = 4;
CollectionShow show = 5;
string link = 6;
}

View file

@ -1,9 +1,14 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
package spotify.collection_platform.proto; package spotify.collection_platform.proto;
import "collection_platform_items.proto";
option java_package = "com.spotify.collection_platform.esperanto.proto";
option java_multiple_files = true;
option objc_class_prefix = "ESP";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message CollectionPlatformItemsRequest { message CollectionPlatformItemsRequest {
@ -11,11 +16,21 @@ message CollectionPlatformItemsRequest {
repeated string items = 2; repeated string items = 2;
} }
message CollectionPlatformContextItemsRequest {
CollectionSet set = 1;
repeated CollectionPlatformContextItem items = 2;
}
enum CollectionSet { enum CollectionSet {
UNKNOWN = 0; UNKNOWN = 0;
SHOW = 1;
BAN = 2;
LISTENLATER = 3;
IGNOREINRECS = 4; IGNOREINRECS = 4;
ENHANCED = 5; ENHANCED = 5;
BANNED_ARTISTS = 8;
CONCERTS = 10;
TAGS = 11;
PRERELEASE = 12;
MARKED_AS_FINISHED = 13;
NOT_INTERESTED = 14;
LOCAL_BANS = 15;
} }

View file

@ -1,20 +1,20 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
package spotify.collection_platform.proto; package spotify.collection_platform.proto;
import "collection_platform_items.proto";
option java_package = "com.spotify.collection_platform.esperanto.proto";
option java_multiple_files = true;
option objc_class_prefix = "ESP";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message CollectionPlatformSimpleResponse { message CollectionPlatformSimpleResponse {
string error_msg = 1; string error_msg = 1;
} }
message CollectionPlatformItem {
string uri = 1;
int64 add_time = 2;
}
message CollectionPlatformItemsResponse { message CollectionPlatformItemsResponse {
repeated CollectionPlatformItem items = 1; repeated CollectionPlatformItem items = 1;
} }
@ -22,3 +22,29 @@ message CollectionPlatformItemsResponse {
message CollectionPlatformContainsResponse { message CollectionPlatformContainsResponse {
repeated bool found = 1; repeated bool found = 1;
} }
message Status {
int32 code = 1;
string reason = 2;
}
message CollectionPlatformEsperantoContainsResponse {
Status status = 1;
CollectionPlatformContainsResponse contains = 2;
}
message CollectionPlatformEsperantoItemsResponse {
Status status = 1;
repeated CollectionPlatformItem items = 2;
}
message CollectionPlatformContextItemsResponse {
Status status = 1;
repeated CollectionPlatformContextItem items = 2;
}
message CollectionPlatformContainsContextItemsResponse {
Status status = 1;
repeated bool found = 2;
}

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -6,9 +6,10 @@ package spotify.connectstate;
import "player.proto"; import "player.proto";
import "devices.proto"; import "devices.proto";
import "media.proto";
option optimize_for = CODE_SIZE;
option java_package = "com.spotify.connectstate.model"; option java_package = "com.spotify.connectstate.model";
option optimize_for = CODE_SIZE;
message ClusterUpdate { message ClusterUpdate {
Cluster cluster = 1; Cluster cluster = 1;
@ -17,10 +18,6 @@ message ClusterUpdate {
repeated string devices_that_changed = 4; repeated string devices_that_changed = 4;
} }
message PostCommandResponse {
string ack_id = 1;
}
message Device { message Device {
DeviceInfo device_info = 1; DeviceInfo device_info = 1;
PlayerState player_state = 2; PlayerState player_state = 2;
@ -29,15 +26,18 @@ message Device {
} }
message Cluster { message Cluster {
reserved 7;
int64 changed_timestamp_ms = 1; int64 changed_timestamp_ms = 1;
string active_device_id = 2; string active_device_id = 2;
PlayerState player_state = 3; PlayerState player_state = 3;
map<string, DeviceInfo> device = 4; map<string, DeviceInfo> device = 4;
bytes transfer_data = 5; bytes transfer_data = 5;
uint64 transfer_data_timestamp = 6; uint64 transfer_data_timestamp = 6;
int64 not_playing_since_timestamp = 7;
bool need_full_player_state = 8; bool need_full_player_state = 8;
int64 server_timestamp_ms = 9; int64 server_timestamp_ms = 9;
optional bool needs_state_updates = 10;
optional uint64 started_playing_at_timestamp = 11;
} }
message PutStateRequest { message PutStateRequest {
@ -59,18 +59,15 @@ message PrivateDeviceInfo {
string platform = 1; string platform = 1;
} }
message SubscribeRequest {
string callback_url = 1;
}
message DeviceInfo { message DeviceInfo {
reserved 5;
bool can_play = 1; bool can_play = 1;
uint32 volume = 2; uint32 volume = 2;
string name = 3; string name = 3;
Capabilities capabilities = 4; Capabilities capabilities = 4;
repeated DeviceMetadata metadata = 5;
string device_software_version = 6; string device_software_version = 6;
spotify.connectstate.devices.DeviceType device_type = 7; devices.DeviceType device_type = 7;
string spirc_version = 9; string spirc_version = 9;
string device_id = 10; string device_id = 10;
bool is_private_session = 11; bool is_private_session = 11;
@ -82,7 +79,7 @@ message DeviceInfo {
string product_id = 17; string product_id = 17;
string deduplication_id = 18; string deduplication_id = 18;
uint32 selected_alias_id = 19; uint32 selected_alias_id = 19;
map<uint32, spotify.connectstate.devices.DeviceAlias> device_aliases = 20; map<string, devices.DeviceAlias> device_aliases = 20;
bool is_offline = 21; bool is_offline = 21;
string public_ip = 22; string public_ip = 22;
string license = 23; string license = 23;
@ -90,29 +87,20 @@ message DeviceInfo {
bool is_dynamic_device = 26; bool is_dynamic_device = 26;
repeated string disallow_playback_reasons = 27; repeated string disallow_playback_reasons = 27;
repeated string disallow_transfer_reasons = 28; repeated string disallow_transfer_reasons = 28;
optional AudioOutputDeviceInfo audio_output_device_info = 24;
oneof _audio_output_device_info {
AudioOutputDeviceInfo audio_output_device_info = 24;
}
} }
message AudioOutputDeviceInfo { message AudioOutputDeviceInfo {
oneof _audio_output_device_type { optional AudioOutputDeviceType audio_output_device_type = 1;
AudioOutputDeviceType audio_output_device_type = 1; optional string device_name = 2;
}
oneof _device_name {
string device_name = 2;
}
}
message DeviceMetadata {
option deprecated = true;
string type = 1;
string metadata = 2;
} }
message Capabilities { message Capabilities {
reserved "supported_contexts";
reserved "supports_lossless_audio";
reserved 1;
reserved 4;
reserved 24;
bool can_be_player = 2; bool can_be_player = 2;
bool restrict_to_local = 3; bool restrict_to_local = 3;
bool gaia_eq_connect_id = 5; bool gaia_eq_connect_id = 5;
@ -137,8 +125,9 @@ message Capabilities {
bool supports_set_options_command = 25; bool supports_set_options_command = 25;
CapabilitySupportDetails supports_hifi = 26; CapabilitySupportDetails supports_hifi = 26;
string connect_capabilities = 27; string connect_capabilities = 27;
bool supports_rooms = 28;
//reserved 1, 4, 24, "supported_contexts", "supports_lossless_audio"; bool supports_dj = 29;
common.media.AudioQuality supported_audio_quality = 30;
} }
message CapabilitySupportDetails { message CapabilitySupportDetails {
@ -152,6 +141,11 @@ message ConnectCommandOptions {
uint32 target_alias_id = 3; uint32 target_alias_id = 3;
} }
message ConnectLoggingParams {
repeated string interaction_ids = 1;
repeated string page_instance_ids = 2;
}
message LogoutCommand { message LogoutCommand {
ConnectCommandOptions command_options = 1; ConnectCommandOptions command_options = 1;
} }
@ -159,6 +153,8 @@ message LogoutCommand {
message SetVolumeCommand { message SetVolumeCommand {
int32 volume = 1; int32 volume = 1;
ConnectCommandOptions command_options = 2; ConnectCommandOptions command_options = 2;
ConnectLoggingParams logging_params = 3;
string connection_type = 4;
} }
message RenameCommand { message RenameCommand {
@ -166,35 +162,18 @@ message RenameCommand {
ConnectCommandOptions command_options = 2; ConnectCommandOptions command_options = 2;
} }
message ConnectPlayerCommand {
string player_command_json = 1;
ConnectCommandOptions command_options = 2;
}
message SetBackendMetadataCommand { message SetBackendMetadataCommand {
map<string, string> metadata = 1; map<string, string> metadata = 1;
} }
message CommandAndSourceDevice {
string command = 1;
DeviceInfo source_device_info = 2;
}
message ActiveDeviceUpdate {
string device_id = 1;
}
message StartedPlayingEvent {
bytes user_info_header = 1;
string device_id = 2;
}
enum AudioOutputDeviceType { enum AudioOutputDeviceType {
UNKNOWN_AUDIO_OUTPUT_DEVICE_TYPE = 0; UNKNOWN_AUDIO_OUTPUT_DEVICE_TYPE = 0;
BUILT_IN_SPEAKER = 1; BUILT_IN_SPEAKER = 1;
LINE_OUT = 2; LINE_OUT = 2;
BLUETOOTH = 3; BLUETOOTH = 3;
AIRPLAY = 4; AIRPLAY = 4;
AUTOMOTIVE = 5;
CAR_PROJECTED = 6;
} }
enum PutStateReason { enum PutStateReason {
@ -207,6 +186,11 @@ enum PutStateReason {
PICKER_OPENED = 6; PICKER_OPENED = 6;
BECAME_INACTIVE = 7; BECAME_INACTIVE = 7;
ALIAS_CHANGED = 8; ALIAS_CHANGED = 8;
NEW_CONNECTION = 9;
PULL_PLAYBACK = 10;
AUDIO_DRIVER_INFO_CHANGED = 11;
PUT_STATE_RATE_LIMITED = 12;
BACKEND_METADATA_APPLIED = 13;
} }
enum MemberType { enum MemberType {
@ -225,15 +209,6 @@ enum ClusterUpdateReason {
NEW_DEVICE_APPEARED = 3; NEW_DEVICE_APPEARED = 3;
DEVICE_VOLUME_CHANGED = 4; DEVICE_VOLUME_CHANGED = 4;
DEVICE_ALIAS_CHANGED = 5; DEVICE_ALIAS_CHANGED = 5;
DEVICE_NEW_CONNECTION = 6;
} }
enum SendCommandResult {
UNKNOWN_SEND_COMMAND_RESULT = 0;
SUCCESS = 1;
DEVICE_NOT_FOUND = 2;
CONTEXT_PLAYER_ERROR = 3;
DEVICE_DISAPPEARED = 4;
UPSTREAM_ERROR = 5;
DEVICE_DOES_NOT_SUPPORT_COMMAND = 6;
RATE_LIMITED = 7;
}

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -9,4 +9,5 @@ option optimize_for = CODE_SIZE;
message ApplicationDesktop { message ApplicationDesktop {
string version_string = 1; string version_string = 1;
int64 version_code = 2; int64 version_code = 2;
bytes session_id = 3;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";
@ -9,6 +9,7 @@ import "play_origin.proto";
import "prepare_play_options.proto"; import "prepare_play_options.proto";
import "track_instance.proto"; import "track_instance.proto";
import "track_instantiator.proto"; import "track_instantiator.proto";
import "context_track.proto";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
@ -21,4 +22,5 @@ message ContextNode {
optional string session_id = 7; optional string session_id = 7;
optional sint32 iteration = 8; optional sint32 iteration = 8;
optional bool pending_pause = 9; optional bool pending_pause = 9;
optional ContextTrack injected_connect_transfer_track = 10;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";
@ -10,10 +10,15 @@ message ContextPlayerOptions {
optional bool shuffling_context = 1; optional bool shuffling_context = 1;
optional bool repeating_context = 2; optional bool repeating_context = 2;
optional bool repeating_track = 3; optional bool repeating_track = 3;
optional float playback_speed = 4;
map<string, string> modes = 5;
} }
message ContextPlayerOptionOverrides { message ContextPlayerOptionOverrides {
optional bool shuffling_context = 1; optional bool shuffling_context = 1;
optional bool repeating_context = 2; optional bool repeating_context = 2;
optional bool repeating_track = 3; optional bool repeating_track = 3;
optional float playback_speed = 4;
map<string, string> modes = 5;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";
@ -13,6 +13,5 @@ message ContextView {
map<string, player.proto.ContextTrack> patch_map = 1; map<string, player.proto.ContextTrack> patch_map = 1;
optional uint32 iteration_size = 2; optional uint32 iteration_size = 2;
optional cyclic_list.proto.CyclicEntryKeyList cyclic_list = 3; optional cyclic_list.proto.CyclicEntryKeyList cyclic_list = 3;
reserved 4;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";
@ -10,14 +10,14 @@ import "context_track.proto";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message Entry { message Entry {
optional Type type = 1;
enum Type { enum Type {
TRACK = 0; TRACK = 0;
DELIMITER = 1; DELIMITER = 1;
PAGE_PLACEHOLDER = 2; PAGE_PLACEHOLDER = 2;
CONTEXT_PLACEHOLDER = 3; CONTEXT_PLACEHOLDER = 3;
} }
optional Type type = 1;
optional player.proto.ContextTrack track = 2; optional player.proto.ContextTrack track = 2;
optional player.proto.ContextIndex index = 3; optional player.proto.ContextIndex index = 3;
optional int32 page_index = 4; optional int32 page_index = 4;

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";
@ -8,5 +8,4 @@ option objc_class_prefix = "SPTCollectionCosmosChanges";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message Response { message Response {
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";
@ -34,5 +34,4 @@ message Response {
optional bool loading_contents = 4; optional bool loading_contents = 4;
optional string offline = 5; optional string offline = 5;
optional uint32 sync_progress = 6; optional uint32 sync_progress = 6;
repeated GroupHeader group_index = 7;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -7,6 +7,9 @@ package spotify.collection_cosmos.tags_info_request.proto;
option objc_class_prefix = "SPTCollectionCosmosTagsInfo"; option objc_class_prefix = "SPTCollectionCosmosTagsInfo";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message Request {
}
message Response { message Response {
bool is_synced = 1; bool is_synced = 1;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,9 +1,10 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";
package spotify.collection_cosmos.track_list_request.proto; package spotify.collection_cosmos.track_list_request.proto;
import "collection/artist_collection_state.proto";
import "collection/track_collection_state.proto"; import "collection/track_collection_state.proto";
import "played_state/track_played_state.proto"; import "played_state/track_played_state.proto";
import "sync/track_sync_state.proto"; import "sync/track_sync_state.proto";
@ -21,6 +22,7 @@ message Item {
optional cosmos_util.proto.TrackPlayState track_play_state = 6; optional cosmos_util.proto.TrackPlayState track_play_state = 6;
optional cosmos_util.proto.TrackCollectionState track_collection_state = 7; optional cosmos_util.proto.TrackCollectionState track_collection_state = 7;
optional string group_label = 8; optional string group_label = 8;
repeated cosmos_util.proto.ArtistCollectionState artist_collection_state = 9;
} }
message GroupHeader { message GroupHeader {
@ -36,5 +38,4 @@ message Response {
optional bool loading_contents = 4; optional bool loading_contents = 4;
optional string offline = 5; optional string offline = 5;
optional uint32 sync_progress = 6; optional uint32 sync_progress = 6;
repeated GroupHeader group_index = 7;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto2"; syntax = "proto2";
@ -7,45 +7,38 @@ package spotify.show_cosmos.decorate_request.proto;
import "metadata/episode_metadata.proto"; import "metadata/episode_metadata.proto";
import "metadata/show_metadata.proto"; import "metadata/show_metadata.proto";
import "played_state/episode_played_state.proto"; import "played_state/episode_played_state.proto";
import "show_access.proto"; import "played_state/show_played_state.proto";
import "show_episode_state.proto"; import "show_episode_state.proto";
import "show_show_state.proto"; import "show_show_state.proto";
import "podcast_segments.proto"; import "show_offline_state.proto";
import "podcast_virality.proto";
import "podcastextensions.proto";
import "podcast_poll.proto";
import "podcast_qna.proto";
import "podcast_ratings.proto";
import "transcripts.proto";
import "clips_cover.proto";
option objc_class_prefix = "SPTShowCosmosDecorate"; option objc_class_prefix = "SPTShowCosmosDecorate";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message Show { message Show {
reserved 5;
reserved 6;
optional cosmos_util.proto.ShowMetadata show_metadata = 1; optional cosmos_util.proto.ShowMetadata show_metadata = 1;
optional show_cosmos.proto.ShowCollectionState show_collection_state = 2; optional show_cosmos.proto.ShowCollectionState show_collection_state = 2;
optional show_cosmos.proto.ShowPlayState show_play_state = 3; optional cosmos_util.proto.ShowPlayState show_play_state = 3;
optional string link = 4; optional string link = 4;
optional podcast_paywalls.ShowAccess access_info = 5; optional show_cosmos.proto.ShowOfflineState show_offline_state = 7;
optional ratings.PodcastRating podcast_rating = 6;
} }
message Episode { message Episode {
reserved 6;
reserved 7;
reserved 8;
reserved 9;
reserved 10;
reserved 11;
reserved 12;
reserved 13;
optional cosmos_util.proto.EpisodeMetadata episode_metadata = 1; optional cosmos_util.proto.EpisodeMetadata episode_metadata = 1;
optional show_cosmos.proto.EpisodeCollectionState episode_collection_state = 2; optional show_cosmos.proto.EpisodeCollectionState episode_collection_state = 2;
optional show_cosmos.proto.EpisodeOfflineState episode_offline_state = 3; optional show_cosmos.proto.EpisodeOfflineState episode_offline_state = 3;
optional cosmos_util.proto.EpisodePlayState episode_play_state = 4; optional cosmos_util.proto.EpisodePlayState episode_play_state = 4;
optional string link = 5; optional string link = 5;
optional podcast_segments.PodcastSegments segments = 6;
optional podcast.extensions.PodcastHtmlDescription html_description = 7;
optional corex.transcripts.metadata.EpisodeTranscript transcripts = 9;
optional podcastvirality.v1.PodcastVirality virality = 10;
optional polls.PodcastPoll podcast_poll = 11;
optional qanda.PodcastQna podcast_qna = 12;
optional clips.ClipsCover clips = 13;
reserved 8;
} }
message Response { message Response {

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,9 +1,10 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
package spotify.displaysegments.v1; package spotify.displaysegments.v1;
option objc_class_prefix = "ESP";
option java_multiple_files = true; option java_multiple_files = true;
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
option java_outer_classname = "DisplaySegmentsExtensionProto"; option java_outer_classname = "DisplaySegmentsExtensionProto";
@ -13,9 +14,9 @@ message DisplaySegmentsExtension {
string episode_uri = 1; string episode_uri = 1;
repeated DisplaySegment segments = 2; repeated DisplaySegment segments = 2;
int32 duration_ms = 3; int32 duration_ms = 3;
oneof decoration { oneof decoration {
MusicAndTalkDecoration music_and_talk_decoration = 4; MusicAndTalkDecoration music_and_talk_decoration = 4;
PodcastChaptersDecoration podcast_chapters_decoration = 5;
} }
} }
@ -25,28 +26,20 @@ message DisplaySegment {
int32 duration_ms = 3; int32 duration_ms = 3;
int32 seek_start_ms = 4; int32 seek_start_ms = 4;
int32 seek_stop_ms = 5; int32 seek_stop_ms = 5;
optional string title = 6;
oneof _title { optional string subtitle = 7;
string title = 6; optional string image_url = 8;
} optional bool is_preview = 9;
oneof _subtitle {
string subtitle = 7;
}
oneof _image_url {
string image_url = 8;
}
oneof _is_preview {
bool is_preview = 9;
}
} }
message MusicAndTalkDecoration { message MusicAndTalkDecoration {
bool can_upsell = 1; bool can_upsell = 1;
} }
message PodcastChaptersDecoration {
repeated string tags = 1;
}
enum SegmentType { enum SegmentType {
SEGMENT_TYPE_UNSPECIFIED = 0; SEGMENT_TYPE_UNSPECIFIED = 0;
SEGMENT_TYPE_TALK = 1; SEGMENT_TYPE_TALK = 1;

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -30,7 +30,6 @@ message PlainListAssoc {
} }
message AssocHeader { message AssocHeader {
} }
message Assoc { message Assoc {

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -16,6 +16,6 @@ message Context {
map<string, string> metadata = 2; map<string, string> metadata = 2;
string uri = 3; string uri = 3;
string url = 4; string url = 4;
bool is_loaded = 5; bool is_loading = 5;
Restrictions restrictions = 6; Restrictions restrictions = 6;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -15,5 +15,5 @@ message ContextPage {
map<string, string> metadata = 2; map<string, string> metadata = 2;
string page_url = 3; string page_url = 3;
string next_page_url = 4; string next_page_url = 4;
bool is_loaded = 5; bool is_loading = 5;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -9,7 +9,6 @@ option optimize_for = CODE_SIZE;
option java_package = "com.spotify.player.esperanto.proto"; option java_package = "com.spotify.player.esperanto.proto";
message ContextPlayerError { message ContextPlayerError {
ErrorCode code = 1;
enum ErrorCode { enum ErrorCode {
SUCCESS = 0; SUCCESS = 0;
PLAYBACK_STUCK = 1; PLAYBACK_STUCK = 1;
@ -48,8 +47,15 @@ message ContextPlayerError {
TIMEOUT = 34; TIMEOUT = 34;
PLAYBACK_REPORTING_ERROR = 35; PLAYBACK_REPORTING_ERROR = 35;
UNKNOWN = 36; UNKNOWN = 36;
ADD_TO_QUEUE_RESTRICTED = 37;
PICK_AND_SHUFFLE_CAPPED = 38;
PICK_AND_SHUFFLE_CONNECT_RESTRICTED = 39;
CONTEXT_LOADING_FAILED = 40;
AUDIOBOOK_NOT_PLAYABLE = 41;
SIGNAL_NOT_AVAILABLE = 42;
} }
ErrorCode code = 1;
string message = 2; string message = 2;
map<string, string> data = 3; map<string, string> data = 3;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -14,10 +14,14 @@ message ContextPlayerOptions {
bool shuffling_context = 1; bool shuffling_context = 1;
bool repeating_context = 2; bool repeating_context = 2;
bool repeating_track = 3; bool repeating_track = 3;
map<string, string> modes = 5;
optional float playback_speed = 4;
} }
message ContextPlayerOptionOverrides { message ContextPlayerOptionOverrides {
OptionalBoolean shuffling_context = 1; OptionalBoolean shuffling_context = 1;
OptionalBoolean repeating_context = 2; OptionalBoolean repeating_context = 2;
OptionalBoolean repeating_track = 3; OptionalBoolean repeating_track = 3;
map<string, string> modes = 5;
optional float playback_speed = 4;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -21,7 +21,6 @@ message ContextIndex {
} }
message PlaybackQuality { message PlaybackQuality {
BitrateLevel bitrate_level = 1;
enum BitrateLevel { enum BitrateLevel {
UNKNOWN = 0; UNKNOWN = 0;
LOW = 1; LOW = 1;
@ -29,9 +28,9 @@ message PlaybackQuality {
HIGH = 3; HIGH = 3;
VERY_HIGH = 4; VERY_HIGH = 4;
HIFI = 5; HIFI = 5;
HIFI24 = 6;
} }
BitrateStrategy strategy = 2;
enum BitrateStrategy { enum BitrateStrategy {
UNKNOWN_STRATEGY = 0; UNKNOWN_STRATEGY = 0;
BEST_MATCHING = 1; BEST_MATCHING = 1;
@ -40,16 +39,18 @@ message PlaybackQuality {
CACHED_FILE = 4; CACHED_FILE = 4;
LOCAL_FILE = 5; LOCAL_FILE = 5;
} }
BitrateLevel target_bitrate_level = 3;
bool target_bitrate_available = 4;
HiFiStatus hifi_status = 5;
enum HiFiStatus { enum HiFiStatus {
NONE = 0; NONE = 0;
OFF = 1; OFF = 1;
ON = 2; ON = 2;
} }
BitrateLevel bitrate_level = 1;
BitrateStrategy strategy = 2;
BitrateLevel target_bitrate_level = 3;
bool target_bitrate_available = 4;
HiFiStatus hifi_status = 5;
} }
message ContextPlayerState { message ContextPlayerState {
@ -79,4 +80,6 @@ message ContextPlayerState {
string session_id = 24; string session_id = 24;
uint64 queue_revision = 25; uint64 queue_revision = 25;
PreparePlayOptions.AudioStream audio_stream = 26; PreparePlayOptions.AudioStream audio_stream = 26;
repeated string signals = 27;
string session_command_id = 28;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -13,5 +13,4 @@ message DeleteSessionRequest {
} }
message DeleteSessionResponse { message DeleteSessionResponse {
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -9,5 +9,4 @@ option optimize_for = CODE_SIZE;
option java_package = "com.spotify.player.esperanto.proto"; option java_package = "com.spotify.player.esperanto.proto";
message GetErrorRequest { message GetErrorRequest {
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -11,7 +11,6 @@ option optimize_for = CODE_SIZE;
option java_package = "com.spotify.player.esperanto.proto"; option java_package = "com.spotify.player.esperanto.proto";
message GetPlayHistoryRequest { message GetPlayHistoryRequest {
} }
message GetPlayHistoryResponse { message GetPlayHistoryResponse {

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -9,16 +9,15 @@ option optimize_for = CODE_SIZE;
option java_package = "com.spotify.player.esperanto.proto"; option java_package = "com.spotify.player.esperanto.proto";
message GetPositionStateRequest { message GetPositionStateRequest {
} }
message GetPositionStateResponse { message GetPositionStateResponse {
Error error = 1;
enum Error { enum Error {
OK = 0; OK = 0;
NOT_FOUND = 1; NOT_FOUND = 1;
} }
Error error = 1;
uint64 timestamp = 2; uint64 timestamp = 2;
uint64 position = 3; uint64 position = 3;
double playback_speed = 4; double playback_speed = 4;

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -9,5 +9,4 @@ option optimize_for = CODE_SIZE;
option java_package = "com.spotify.player.esperanto.proto"; option java_package = "com.spotify.player.esperanto.proto";
message GetQueueRequest { message GetQueueRequest {
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -6,6 +6,7 @@ package spotify.player.esperanto.proto;
import "es_command_options.proto"; import "es_command_options.proto";
import "es_logging_params.proto"; import "es_logging_params.proto";
import "es_pauseresume_origin.proto";
option objc_class_prefix = "ESP"; option objc_class_prefix = "ESP";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
@ -14,4 +15,5 @@ option java_package = "com.spotify.player.esperanto.proto";
message PauseRequest { message PauseRequest {
CommandOptions options = 1; CommandOptions options = 1;
LoggingParams logging_params = 2; LoggingParams logging_params = 2;
PauseResumeOrigin pause_origin = 3;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -16,4 +16,5 @@ message PlayOrigin {
string referrer_identifier = 5; string referrer_identifier = 5;
string device_identifier = 6; string device_identifier = 6;
repeated string feature_classes = 7; repeated string feature_classes = 7;
string restriction_identifier = 8;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -25,11 +25,9 @@ message SubParams {
} }
message GetAllParams { message GetAllParams {
} }
message SubAllParams { message SubAllParams {
} }
message Value { message Value {

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -21,19 +21,19 @@ message PreparePlayOptions {
bool system_initiated = 6; bool system_initiated = 6;
ContextPlayerOptionOverrides player_options_override = 7; ContextPlayerOptionOverrides player_options_override = 7;
repeated string suppressions = 8; repeated string suppressions = 8;
PrefetchLevel prefetch_level = 9; PrefetchLevel prefetch_level = 9;
enum PrefetchLevel { enum PrefetchLevel {
NONE = 0; NONE = 0;
MEDIA = 1; MEDIA = 1;
} }
AudioStream audio_stream = 10; AudioStream audio_stream = 10;
enum AudioStream { enum AudioStream {
DEFAULT = 0; DEFAULT = 0;
ALARM = 1; ALARM = 1;
} }
string session_id = 11; string session_id = 11;
string license = 12; string license = 12;
map<string, string> configuration_override = 13; map<string, string> configuration_override = 13;

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,21 +1,33 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
package spotify.remote_config.esperanto.proto; package spotify.remote_config.esperanto.proto;
import "esperanto_options.proto";
option objc_class_prefix = "ESP"; option objc_class_prefix = "ESP";
option java_package = "com.spotify.remoteconfig.esperanto.proto"; option java_package = "com.spotify.remoteconfig.esperanto.proto";
service RemoteConfig { service RemoteConfig {
rpc lookupBool(LookupRequest) returns (BoolResponse); rpc lookupBool(LookupRequest) returns (.spotify.remote_config.esperanto.proto.BoolResponse) {}
rpc lookupInt(LookupRequest) returns (.spotify.remote_config.esperanto.proto.IntResponse) {}
rpc lookupEnum(LookupRequest) returns (.spotify.remote_config.esperanto.proto.EnumResponse) {}
} }
message LookupRequest { message LookupRequest {
string component_id = 1; string scope = 1;
string key = 2; string name = 2;
} }
message BoolResponse { message BoolResponse {
bool value = 1; optional bool value = 1;
}
message IntResponse {
optional int32 value = 1;
}
message EnumResponse {
optional string value = 1;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -24,4 +24,6 @@ message RequestInfo {
int64 event_first_byte_received = 11; int64 event_first_byte_received = 11;
int64 event_last_byte_received = 12; int64 event_last_byte_received = 12;
int64 event_ended = 13; int64 event_ended = 13;
string protocol = 14;
int64 event_redirects_done = 15;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -9,13 +9,13 @@ option optimize_for = CODE_SIZE;
option java_package = "com.spotify.player.esperanto.proto"; option java_package = "com.spotify.player.esperanto.proto";
message ResponseWithReasons { message ResponseWithReasons {
Error error = 1;
enum Error { enum Error {
OK = 0; OK = 0;
FORBIDDEN = 1; FORBIDDEN = 1;
NOT_FOUND = 2; NOT_FOUND = 2;
CONFLICT = 3; CONFLICT = 3;
} }
Error error = 1;
string reasons = 2; string reasons = 2;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -8,6 +8,14 @@ option objc_class_prefix = "ESP";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
option java_package = "com.spotify.player.esperanto.proto"; option java_package = "com.spotify.player.esperanto.proto";
message ModeRestrictions {
map<string, RestrictionReasons> values = 1;
}
message RestrictionReasons {
repeated string reasons = 1;
}
message Restrictions { message Restrictions {
repeated string disallow_pausing_reasons = 1; repeated string disallow_pausing_reasons = 1;
repeated string disallow_resuming_reasons = 2; repeated string disallow_resuming_reasons = 2;
@ -30,4 +38,8 @@ message Restrictions {
repeated string disallow_removing_from_next_tracks_reasons = 19; repeated string disallow_removing_from_next_tracks_reasons = 19;
repeated string disallow_removing_from_context_tracks_reasons = 20; repeated string disallow_removing_from_context_tracks_reasons = 20;
repeated string disallow_updating_context_reasons = 21; repeated string disallow_updating_context_reasons = 21;
repeated string disallow_add_to_queue_reasons = 22;
repeated string disallow_setting_playback_speed_reasons = 23;
map<string, ModeRestrictions> disallow_setting_modes = 25;
map<string, RestrictionReasons> disallow_signals = 26;
} }

View file

@ -1,17 +1,19 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
package spotify.player.esperanto.proto; package spotify.player.esperanto.proto;
import "es_command_options.proto";
import "es_logging_params.proto";
option objc_class_prefix = "ESP"; option objc_class_prefix = "ESP";
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
option java_package = "com.spotify.player.esperanto.proto"; option java_package = "com.spotify.player.esperanto.proto";
import "es_command_options.proto";
import "es_logging_params.proto";
import "es_pauseresume_origin.proto";
message ResumeRequest { message ResumeRequest {
CommandOptions options = 1; CommandOptions options = 1;
LoggingParams logging_params = 2; LoggingParams logging_params = 2;
PauseResumeOrigin resume_origin = 3;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -12,14 +12,15 @@ option optimize_for = CODE_SIZE;
option java_package = "com.spotify.player.esperanto.proto"; option java_package = "com.spotify.player.esperanto.proto";
message SeekToRequest { message SeekToRequest {
CommandOptions options = 1;
LoggingParams logging_params = 2;
int64 position = 3;
Relative relative = 4;
enum Relative { enum Relative {
BEGINNING = 0; BEGINNING = 0;
END = 1; END = 1;
CURRENT = 2; CURRENT = 2;
} }
CommandOptions options = 1;
LoggingParams logging_params = 2;
int64 position = 3;
Relative relative = 4;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -18,4 +18,6 @@ message SetOptionsRequest {
OptionalBoolean shuffling_context = 3; OptionalBoolean shuffling_context = 3;
CommandOptions options = 4; CommandOptions options = 4;
LoggingParams logging_params = 5; LoggingParams logging_params = 5;
map<string, string> modes = 7;
optional float playback_speed = 6;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -13,13 +13,13 @@ option java_package = "com.spotify.player.esperanto.proto";
message StopRequest { message StopRequest {
CommandOptions options = 1; CommandOptions options = 1;
Reason reason = 2; StopRequest.Reason reason = 2;
enum Reason { enum Reason {
INTERACTIVE = 0; INTERACTIVE = 0;
REMOTE_TRANSFER = 1; REMOTE_TRANSFER = 1;
SHUTDOWN = 2; SHUTDOWN = 2;
} }
LoggingParams logging_params = 3; LoggingParams logging_params = 3;
} }

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";
@ -6,8 +6,8 @@ package spotify.storage.esperanto.proto;
import "google/protobuf/empty.proto"; import "google/protobuf/empty.proto";
option objc_class_prefix = "ESP";
option java_package = "com.spotify.storage.esperanto.proto"; option java_package = "com.spotify.storage.esperanto.proto";
option objc_class_prefix = "ESP";
service Storage { service Storage {
rpc GetCacheSizeLimit(GetCacheSizeLimitParams) returns (CacheSizeLimit); rpc GetCacheSizeLimit(GetCacheSizeLimitParams) returns (CacheSizeLimit);
@ -23,7 +23,6 @@ message CacheSizeLimit {
} }
message GetCacheSizeLimitParams { message GetCacheSizeLimitParams {
} }
message SetCacheSizeLimitParams { message SetCacheSizeLimitParams {
@ -31,11 +30,9 @@ message SetCacheSizeLimitParams {
} }
message DeleteExpiredItemsParams { message DeleteExpiredItemsParams {
} }
message DeleteUnlockedItemsParams { message DeleteUnlockedItemsParams {
} }
message RealmStats { message RealmStats {
@ -58,18 +55,17 @@ message Stats {
} }
message GetStatsParams { message GetStatsParams {
} }
message FileRanges { message FileRanges {
bool byte_size_known = 1;
uint64 byte_size = 2;
repeated Range ranges = 3;
message Range { message Range {
uint64 from_byte = 1; uint64 from_byte = 1;
uint64 to_byte = 2; uint64 to_byte = 2;
} }
bool byte_size_known = 1;
uint64 byte_size = 2;
repeated Range ranges = 3;
} }
message GetFileRangesParams { message GetFileRangesParams {

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.61.583 (Windows) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -1,4 +1,4 @@
// Extracted from: Spotify 1.1.73.517 (macOS) // Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3"; syntax = "proto3";

View file

@ -6,11 +6,6 @@ package spotify.explicit_content.proto;
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message KeyValuePair {
required string key = 1;
required string value = 2;
}
message UserAttributesUpdate { message UserAttributesUpdate {
repeated KeyValuePair pairs = 1; map<string, string> pairs = 1;
} }

Some files were not shown because too many files have changed in this diff Show more