Update protobufs (#796)

* Import Spotify 1.1.61.583 (Windows) protobufs
* Import Spotify 1.1.33.569 protobufs missing in 1.1.61.583
* Remove unused protobufs, no longer present in 1.1.61.583
This commit is contained in:
Roderick van Domburg 2021-06-19 22:29:48 +02:00 committed by GitHub
parent 6244515879
commit 113ac94c07
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
396 changed files with 10952 additions and 926 deletions

View file

@ -359,7 +359,7 @@ impl Metadata for Episode {
let country = session.country();
let files = msg
.get_file()
.get_audio()
.iter()
.filter(|file| file.has_file_id())
.map(|file| {
@ -370,7 +370,7 @@ impl Metadata for Episode {
.collect();
let covers = msg
.get_covers()
.get_cover_image()
.get_image()
.iter()
.filter(|image| image.has_file_id())
@ -412,7 +412,7 @@ impl Metadata for Show {
.collect::<Vec<_>>();
let covers = msg
.get_covers()
.get_cover_image()
.get_image()
.iter()
.filter(|image| image.has_file_id())

View file

@ -652,12 +652,9 @@ impl PlayerTrackLoader {
FileFormat::MP3_160 => 20 * 1024,
FileFormat::MP3_96 => 12 * 1024,
FileFormat::MP3_160_ENC => 20 * 1024,
FileFormat::MP4_128_DUAL => 16 * 1024,
FileFormat::OTHER3 => 40 * 1024, // better some high guess than nothing
FileFormat::AAC_160 => 20 * 1024,
FileFormat::AAC_320 => 40 * 1024,
FileFormat::MP4_128 => 16 * 1024,
FileFormat::OTHER5 => 40 * 1024, // better some high guess than nothing
FileFormat::AAC_24 => 3 * 1024,
FileFormat::AAC_48 => 6 * 1024,
FileFormat::FLAC_FLAC => 112 * 1024, // assume 900 kbps on average
}
}

View file

@ -16,10 +16,11 @@ fn compile() {
let proto_dir = Path::new(&env::var("CARGO_MANIFEST_DIR").expect("env")).join("proto");
let files = &[
proto_dir.join("metadata.proto"),
// TODO: remove these legacy protobufs when we are on the new API completely
proto_dir.join("authentication.proto"),
proto_dir.join("keyexchange.proto"),
proto_dir.join("mercury.proto"),
proto_dir.join("metadata.proto"),
proto_dir.join("playlist4changes.proto"),
proto_dir.join("playlist4content.proto"),
proto_dir.join("playlist4issues.proto"),

View file

@ -0,0 +1,13 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AdDecisionEvent {
optional string request_id = 1;
optional string decision_request_id = 2;
optional string decision_type = 3;
}

View file

@ -0,0 +1,15 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AdError {
optional string request_type = 1;
optional string error_message = 2;
optional int64 http_error_code = 3;
optional string request_url = 4;
optional string tracking_event = 5;
}

View file

@ -0,0 +1,27 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AdEvent {
optional string request_id = 1;
optional string app_startup_id = 2;
optional string ad_id = 3;
optional string lineitem_id = 4;
optional string creative_id = 5;
optional string slot = 6;
optional string format = 7;
optional string type = 8;
optional bool skippable = 9;
optional string event = 10;
optional string event_source = 11;
optional string event_reason = 12;
optional int32 event_sequence_num = 13;
optional int32 position = 14;
optional int32 duration = 15;
optional bool in_focus = 16;
optional float volume = 17;
}

View file

@ -0,0 +1,14 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AdRequestEvent {
optional string feature_identifier = 1;
optional string requested_ad_type = 2;
optional int64 latency_ms = 3;
repeated string requested_ad_types = 4;
}

View file

@ -0,0 +1,19 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AdSlotEvent {
optional string event = 1;
optional string ad_id = 2;
optional string lineitem_id = 3;
optional string creative_id = 4;
optional string slot = 5;
optional string format = 6;
optional bool in_focus = 7;
optional string app_startup_id = 8;
optional string request_id = 9;
}

View file

@ -0,0 +1,11 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AmazonWakeUpTime {
optional int64 delay_to_online = 1;
}

View file

@ -0,0 +1,14 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AudioDriverError {
optional int64 error_code = 1;
optional string location = 2;
optional string driver_name = 3;
optional string additional_data = 4;
}

View file

@ -0,0 +1,14 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AudioDriverInfo {
optional string driver_name = 1;
optional string output_device_name = 2;
optional string output_device_category = 3;
optional string reason = 4;
}

View file

@ -0,0 +1,16 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AudioFileSelection {
optional bytes playback_id = 1;
optional string strategy_name = 2;
optional int64 bitrate = 3;
optional bytes predict_id = 4;
optional string file_origin = 5;
optional int32 target_bitrate = 6;
}

View file

@ -0,0 +1,15 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AudioOffliningSettingsReport {
optional string default_sync_bitrate_product_state = 1;
optional int64 user_selected_sync_bitrate = 2;
optional int64 sync_bitrate = 3;
optional bool sync_over_cellular = 4;
optional string primary_resource_type = 5;
}

View file

@ -0,0 +1,18 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AudioRateLimit {
optional string driver_name = 1;
optional string output_device_name = 2;
optional string output_device_category = 3;
optional int64 max_size = 4;
optional int64 refill_per_milliseconds = 5;
optional int64 frames_requested = 6;
optional int64 frames_acquired = 7;
optional bytes playback_id = 8;
}

View file

@ -0,0 +1,13 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AudioSessionEvent {
optional string event = 1;
optional string context = 2;
optional string json_data = 3;
}

View file

@ -0,0 +1,30 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AudioSettingsReport {
optional bool offline_mode = 1;
optional string default_play_bitrate_product_state = 2;
optional int64 user_selected_bitrate = 3;
optional int64 play_bitrate = 4;
optional bool low_bitrate_on_cellular = 5;
optional string default_sync_bitrate_product_state = 6;
optional int64 user_selected_sync_bitrate = 7;
optional int64 sync_bitrate = 8;
optional bool sync_over_cellular = 9;
optional string enable_gapless_product_state = 10;
optional bool enable_gapless = 11;
optional string enable_crossfade_product_state = 12;
optional bool enable_crossfade = 13;
optional int64 crossfade_time = 14;
optional bool enable_normalization = 15;
optional int64 playback_speed = 16;
optional string audio_loudness_level = 17;
optional bool enable_automix = 18;
optional bool enable_silence_trimmer = 19;
optional bool enable_mono_downmixer = 20;
}

View file

@ -0,0 +1,16 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message AudioStreamingSettingsReport {
optional string default_play_bitrate_product_state = 1;
optional int64 user_selected_play_bitrate_cellular = 2;
optional int64 user_selected_play_bitrate_wifi = 3;
optional int64 play_bitrate_cellular = 4;
optional int64 play_bitrate_wifi = 5;
optional bool allow_downgrade = 6;
}

View file

@ -0,0 +1,18 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message BoomboxPlaybackInstrumentation {
optional bytes playback_id = 1;
optional bool was_playback_paused = 2;
repeated string dimensions = 3;
map<string, int64> total_buffer_size = 4;
map<string, int64> number_of_calls = 5;
map<string, int64> total_duration = 6;
map<string, int64> first_call_time = 7;
map<string, int64> last_call_time = 8;
}

View file

@ -0,0 +1,14 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message BrokenObject {
optional string type = 1;
optional string id = 2;
optional int64 error_code = 3;
optional bytes playback_id = 4;
}

View file

@ -0,0 +1,16 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message CacheError {
optional int64 error_code = 1;
optional int64 os_error_code = 2;
optional string realm = 3;
optional bytes file_id = 4;
optional int64 num_errors = 5;
optional string cache_path = 6;
}

View file

@ -0,0 +1,25 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message CachePruningReport {
optional bytes cache_id = 1;
optional int64 time_spent_pruning_ms = 2;
optional int64 size_before_prune_kb = 3;
optional int64 size_after_prune_kb = 4;
optional int64 num_entries_pruned = 5;
optional int64 num_entries_pruned_expired = 6;
optional int64 size_entries_pruned_expired_kb = 7;
optional int64 num_entries_pruned_limit = 8;
optional int64 size_pruned_limit_kb = 9;
optional int64 num_entries_pruned_never_used = 10;
optional int64 size_pruned_never_used_kb = 11;
optional int64 num_entries_pruned_max_realm_size = 12;
optional int64 size_pruned_max_realm_size_kb = 13;
optional int64 num_entries_pruned_min_free_space = 14;
optional int64 size_pruned_min_free_space_kb = 15;
}

View file

@ -0,0 +1,23 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message CacheRealmPruningReport {
optional bytes cache_id = 1;
optional int64 realm_id = 2;
optional int64 num_entries_pruned = 3;
optional int64 num_entries_pruned_expired = 4;
optional int64 size_entries_pruned_expired_kb = 5;
optional int64 num_entries_pruned_limit = 6;
optional int64 size_pruned_limit_kb = 7;
optional int64 num_entries_pruned_never_used = 8;
optional int64 size_pruned_never_used_kb = 9;
optional int64 num_entries_pruned_max_realm_size = 10;
optional int64 size_pruned_max_realm_size_kb = 11;
optional int64 num_entries_pruned_min_free_space = 12;
optional int64 size_pruned_min_free_space_kb = 13;
}

View file

@ -0,0 +1,18 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message CacheRealmReport {
optional bytes cache_id = 1;
optional int64 realm_id = 2;
optional int64 num_entries = 3;
optional int64 num_locked_entries = 4;
optional int64 num_locked_entries_current_user = 5;
optional int64 num_full_entries = 6;
optional int64 size_kb = 7;
optional int64 locked_size_kb = 8;
}

View file

@ -0,0 +1,30 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message CacheReport {
optional bytes cache_id = 1;
optional int64 max_cache_size = 2;
optional int64 free_space = 3;
optional int64 total_space = 4;
optional int64 cache_age = 5;
optional int64 num_users_with_locked_entries = 6;
optional int64 permanent_files = 7;
optional int64 permanent_size_kb = 8;
optional int64 unknown_permanent_files = 9;
optional int64 unknown_permanent_size_kb = 10;
optional int64 volatile_files = 11;
optional int64 volatile_size_kb = 12;
optional int64 unknown_volatile_files = 13;
optional int64 unknown_volatile_size_kb = 14;
optional int64 num_entries = 15;
optional int64 num_locked_entries = 16;
optional int64 num_locked_entries_current_user = 17;
optional int64 num_full_entries = 18;
optional int64 size_kb = 19;
optional int64 locked_size_kb = 20;
}

View file

@ -0,0 +1,12 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ClientLocale {
optional string client_default_locale = 1;
optional string user_specified_locale = 2;
}

View file

@ -0,0 +1,19 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ColdStartupSequence {
optional string terminal_state = 1;
map<string, int64> steps = 2;
map<string, string> metadata = 3;
optional string connection_type = 4;
optional string initial_application_state = 5;
optional string terminal_application_state = 6;
optional string view_load_sequence_id = 7;
optional int32 device_year_class = 8;
map<string, int64> subdurations = 9;
}

View file

@ -0,0 +1,16 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message CollectionLevelDbInfo {
optional string bucket = 1;
optional bool use_leveldb = 2;
optional bool migration_from_file_ok = 3;
optional bool index_check_ok = 4;
optional bool leveldb_works = 5;
optional bool already_migrated = 6;
}

View file

@ -0,0 +1,13 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message CollectionOfflineControllerEmptyTrackList {
optional string link_type = 1;
optional bool consistent_with_collection = 2;
optional int64 collection_size = 3;
}

View file

@ -0,0 +1,18 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ConfigurationApplied {
optional int64 last_rcs_fetch_time = 1;
optional string installation_id = 2;
repeated int32 policy_group_ids = 3;
optional string configuration_assignment_id = 4;
optional string rc_client_id = 5;
optional string rc_client_version = 6;
optional string platform = 7;
optional string fetch_type = 8;
}

View file

@ -0,0 +1,31 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ConfigurationFetched {
optional int64 last_rcs_fetch_time = 1;
optional string installation_id = 2;
optional string configuration_assignment_id = 3;
optional string property_set_id = 4;
optional string attributes_set_id = 5;
optional string rc_client_id = 6;
optional string rc_client_version = 7;
optional string rc_sdk_version = 8;
optional string platform = 9;
optional string fetch_type = 10;
optional int64 latency = 11;
optional int64 payload_size = 12;
optional int32 status_code = 13;
optional string error_reason = 14;
optional string error_message = 15;
optional string error_reason_configuration_resolve = 16;
optional string error_message_configuration_resolve = 17;
optional string error_reason_account_attributes = 18;
optional string error_message_account_attributes = 19;
optional int32 error_code_account_attributes = 20;
optional int32 error_code_configuration_resolve = 21;
}

View file

@ -0,0 +1,31 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ConfigurationFetchedNonAuth {
optional int64 last_rcs_fetch_time = 1;
optional string installation_id = 2;
optional string configuration_assignment_id = 3;
optional string property_set_id = 4;
optional string attributes_set_id = 5;
optional string rc_client_id = 6;
optional string rc_client_version = 7;
optional string rc_sdk_version = 8;
optional string platform = 9;
optional string fetch_type = 10;
optional int64 latency = 11;
optional int64 payload_size = 12;
optional int32 status_code = 13;
optional string error_reason = 14;
optional string error_message = 15;
optional string error_reason_configuration_resolve = 16;
optional string error_message_configuration_resolve = 17;
optional string error_reason_account_attributes = 18;
optional string error_message_account_attributes = 19;
optional int32 error_code_account_attributes = 20;
optional int32 error_code_configuration_resolve = 21;
}

View file

@ -0,0 +1,12 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ConnectCredentialsRequest {
optional string token_type = 1;
optional string client_id = 2;
}

View file

@ -0,0 +1,22 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ConnectDeviceDiscovered {
optional string device_id = 1;
optional string discover_method = 2;
optional string discovered_device_id = 3;
optional string discovered_device_type = 4;
optional string discovered_library_version = 5;
optional string discovered_brand_display_name = 6;
optional string discovered_model_display_name = 7;
optional string discovered_client_id = 8;
optional string discovered_product_id = 9;
optional string discovered_device_availablilty = 10;
optional string discovered_device_public_key = 11;
optional bool capabilities_resolved = 12;
}

View file

@ -0,0 +1,15 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ConnectDialError {
optional string type = 1;
optional string request = 2;
optional string response = 3;
optional int64 error = 4;
optional string context = 5;
}

View file

@ -0,0 +1,17 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ConnectMdnsPacketParseError {
optional string type = 1;
optional string buffer = 2;
optional string ttl = 3;
optional string txt = 4;
optional string host = 5;
optional string discovery_name = 6;
optional string context = 7;
}

View file

@ -0,0 +1,13 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ConnectPullFailure {
optional bytes transfer_data = 1;
optional int64 error_code = 2;
map<string, string> reasons = 3;
}

View file

@ -0,0 +1,29 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ConnectTransferResult {
optional string result = 1;
optional string device_type = 2;
optional string discovery_class = 3;
optional string device_model = 4;
optional string device_brand = 5;
optional string device_software_version = 6;
optional int64 duration = 7;
optional string device_client_id = 8;
optional string transfer_intent_id = 9;
optional string transfer_debug_log = 10;
optional string error_code = 11;
optional int32 http_response_code = 12;
optional string initial_device_state = 13;
optional int32 retry_count = 14;
optional int32 login_retry_count = 15;
optional int64 login_duration = 16;
optional string target_device_id = 17;
optional bool target_device_is_local = 18;
optional string final_device_state = 19;
}

View file

@ -0,0 +1,13 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ConnectionError {
optional int64 error_code = 1;
optional string ap = 2;
optional string proxy = 3;
}

View file

@ -0,0 +1,18 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ConnectionInfo {
optional string ap = 1;
optional string proxy = 2;
optional bool user_initated_login = 3;
optional string reachability_type = 4;
optional string web_installer_unique_id = 5;
optional string ap_resolve_source = 6;
optional string address_type = 7;
optional bool ipv6_failed = 8;
}

View file

@ -0,0 +1,17 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message DefaultConfigurationApplied {
optional string installation_id = 1;
optional string configuration_assignment_id = 2;
optional string rc_client_id = 3;
optional string rc_client_version = 4;
optional string platform = 5;
optional string fetch_type = 6;
optional string reason = 7;
}

View file

@ -0,0 +1,13 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message DesktopAuthenticationFailureNonAuth {
optional string action_hash = 1;
optional string error_category = 2;
optional int32 error_code = 3;
}

View file

@ -0,0 +1,11 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message DesktopAuthenticationSuccess {
optional string action_hash = 1;
}

View file

@ -0,0 +1,11 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message DesktopGPUAccelerationInfo {
optional bool is_enabled = 1;
}

View file

@ -0,0 +1,19 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message DesktopHighMemoryUsage {
optional bool is_continuation_event = 1;
optional double sample_time_interval_seconds = 2;
optional int64 win_committed_bytes = 3;
optional int64 win_peak_committed_bytes = 4;
optional int64 win_working_set_bytes = 5;
optional int64 win_peak_working_set_bytes = 6;
optional int64 mac_virtual_size_bytes = 7;
optional int64 mac_resident_size_bytes = 8;
optional int64 mac_footprint_bytes = 9;
}

View file

@ -0,0 +1,15 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message DesktopUpdateDownloadComplete {
optional int64 revision = 1;
optional bool is_critical = 2;
optional string source = 3;
optional bool is_successful = 4;
optional bool is_employee = 5;
}

View file

@ -0,0 +1,15 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message DesktopUpdateDownloadError {
optional int64 revision = 1;
optional bool is_critical = 2;
optional string error_message = 3;
optional string source = 4;
optional bool is_employee = 5;
}

View file

@ -0,0 +1,18 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message DesktopUpdateMessageAction {
optional bool will_download = 1;
optional int64 this_message_from_revision = 2;
optional int64 this_message_to_revision = 3;
optional bool is_critical = 4;
optional int64 already_downloaded_from_revision = 5;
optional int64 already_downloaded_to_revision = 6;
optional string source = 7;
optional bool is_employee = 8;
}

View file

@ -0,0 +1,16 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message DesktopUpdateMessageProcessed {
optional bool success = 1;
optional string source = 2;
optional int64 revision = 3;
optional bool is_critical = 4;
optional string binary_hash = 5;
optional bool is_employee = 6;
}

View file

@ -0,0 +1,15 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message DesktopUpdateResponse {
optional int64 status_code = 1;
optional int64 request_time_ms = 2;
optional int64 payload_size = 3;
optional bool is_employee = 4;
optional string error_message = 5;
}

View file

@ -0,0 +1,53 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message Download {
optional bytes file_id = 1;
optional bytes playback_id = 2;
optional int64 bytes_from_ap = 3;
optional int64 waste_from_ap = 4;
optional int64 reqs_from_ap = 5;
optional int64 error_from_ap = 6;
optional int64 bytes_from_cdn = 7;
optional int64 waste_from_cdn = 8;
optional int64 bytes_from_cache = 9;
optional int64 content_size = 10;
optional string content_type = 11;
optional int64 ap_initial_latency = 12;
optional int64 ap_max_latency = 13;
optional int64 ap_min_latency = 14;
optional double ap_avg_latency = 15;
optional int64 ap_median_latency = 16;
optional double ap_avg_bw = 17;
optional int64 cdn_initial_latency = 18;
optional int64 cdn_max_latency = 19;
optional int64 cdn_min_latency = 20;
optional double cdn_avg_latency = 21;
optional int64 cdn_median_latency = 22;
optional int64 cdn_64k_initial_latency = 23;
optional int64 cdn_64k_max_latency = 24;
optional int64 cdn_64k_min_latency = 25;
optional double cdn_64k_avg_latency = 26;
optional int64 cdn_64k_median_latency = 27;
optional double cdn_avg_bw = 28;
optional double cdn_initial_bw_estimate = 29;
optional string cdn_uri_scheme = 30;
optional string cdn_domain = 31;
optional string cdn_socket_reuse = 32;
optional int64 num_cache_error = 33;
optional int64 bytes_from_carrier = 34;
optional int64 bytes_from_unknown = 35;
optional int64 bytes_from_wifi = 36;
optional int64 bytes_from_ethernet = 37;
optional string request_type = 38;
optional int64 total_time = 39;
optional int64 bitrate = 40;
optional int64 reqs_from_cdn = 41;
optional int64 error_from_cdn = 42;
optional string file_origin = 43;
}

View file

@ -0,0 +1,14 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message DrmRequestFailure {
optional string reason = 1;
optional int64 error_code = 2;
optional bool fatal = 3;
optional bytes playback_id = 4;
}

View file

@ -0,0 +1,34 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message EndAd {
optional bytes file_id = 1;
optional bytes playback_id = 2;
optional bytes song_id = 3;
optional string source_start = 4;
optional string reason_start = 5;
optional string source_end = 6;
optional string reason_end = 7;
optional int64 bytes_played = 8;
optional int64 bytes_in_song = 9;
optional int64 ms_played = 10;
optional int64 ms_total_est = 11;
optional int64 ms_rcv_latency = 12;
optional int64 n_seekback = 13;
optional int64 ms_seekback = 14;
optional int64 n_seekfwd = 15;
optional int64 ms_seekfwd = 16;
optional int64 ms_latency = 17;
optional int64 n_stutter = 18;
optional int64 p_lowbuffer = 19;
optional bool skipped = 20;
optional bool ad_clicked = 21;
optional string token = 22;
optional int64 client_ad_count = 23;
optional int64 client_campaign_count = 24;
}

View file

@ -0,0 +1,14 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message EventSenderInternalErrorNonAuth {
optional string error_message = 1;
optional string error_type = 2;
optional string error_context = 3;
optional int32 error_code = 4;
}

View file

@ -0,0 +1,13 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message EventSenderStats {
map<string, int64> storage_size = 1;
map<string, int64> sequence_number_min = 2;
map<string, int64> sequence_number_next = 3;
}

View file

@ -0,0 +1,20 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ExternalDeviceInfo {
optional string type = 1;
optional string subtype = 2;
optional string reason = 3;
optional bool taken_over = 4;
optional int64 num_tracks = 5;
optional int64 num_purchased_tracks = 6;
optional int64 num_playlists = 7;
optional string error = 8;
optional bool full = 9;
optional bool sync_all = 10;
}

View file

@ -0,0 +1,15 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message GetInfoFailures {
optional string device_id = 1;
optional int64 error_code = 2;
optional string request = 3;
optional string response_body = 4;
optional string context = 5;
}

View file

@ -0,0 +1,26 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message HeadFileDownload {
optional bytes file_id = 1;
optional bytes playback_id = 2;
optional string cdn_uri_scheme = 3;
optional string cdn_domain = 4;
optional int64 head_file_size = 5;
optional int64 bytes_downloaded = 6;
optional int64 bytes_wasted = 7;
optional int64 http_latency = 8;
optional int64 http_64k_latency = 9;
optional int64 total_time = 10;
optional int64 http_result = 11;
optional int64 error_code = 12;
optional int64 cached_bytes = 13;
optional int64 bytes_from_cache = 14;
optional string socket_reuse = 15;
optional string request_type = 16;
}

View file

@ -0,0 +1,11 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message LocalFileSyncError {
optional string error = 1;
}

View file

@ -0,0 +1,12 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message LocalFilesError {
optional int64 error_code = 1;
optional string context = 2;
}

View file

@ -0,0 +1,15 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message LocalFilesImport {
optional int64 tracks = 1;
optional int64 duplicate_tracks = 2;
optional int64 failed_tracks = 3;
optional int64 matched_tracks = 4;
optional string source = 5;
}

View file

@ -0,0 +1,20 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message LocalFilesReport {
optional int64 total_tracks = 1;
optional int64 total_size = 2;
optional int64 owned_tracks = 3;
optional int64 owned_size = 4;
optional int64 tracks_not_found = 5;
optional int64 tracks_bad_format = 6;
optional int64 tracks_drm_protected = 7;
optional int64 tracks_unknown_pruned = 8;
optional int64 tracks_reallocated_repaired = 9;
optional int64 enabled_sources = 10;
}

View file

@ -0,0 +1,12 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message LocalFilesSourceReport {
optional string id = 1;
optional int64 tracks = 2;
}

View file

@ -0,0 +1,16 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message MdnsLoginFailures {
optional string device_id = 1;
optional int64 error_code = 2;
optional string response_body = 3;
optional string request = 4;
optional int64 esdk_internal_error_code = 5;
optional string context = 6;
}

View file

@ -0,0 +1,20 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message MercuryCacheReport {
optional int64 mercury_cache_version = 1;
optional int64 num_items = 2;
optional int64 num_locked_items = 3;
optional int64 num_expired_items = 4;
optional int64 num_lock_ids = 5;
optional int64 num_expired_lock_ids = 6;
optional int64 max_size = 7;
optional int64 total_size = 8;
optional int64 used_size = 9;
optional int64 free_size = 10;
}

View file

@ -0,0 +1,20 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message MetadataExtensionClientStatistic {
optional bytes task_id = 1;
optional string feature_id = 2;
optional bool is_online_param = 3;
optional int32 num_extensions_with_etags = 4;
optional int32 num_extensions_requested = 5;
optional int32 num_extensions_needed = 6;
optional int32 num_uris_requested = 7;
optional int32 num_uris_needed = 8;
optional int32 num_prepared_requests = 9;
optional int32 num_sent_requests = 10;
}

View file

@ -0,0 +1,11 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ModuleDebug {
optional string blob = 1;
}

View file

@ -0,0 +1,13 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message Offline2ClientError {
optional string error = 1;
optional string device_id = 2;
optional string cache_id = 3;
}

View file

@ -0,0 +1,13 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message Offline2ClientEvent {
optional string event = 1;
optional string device_id = 2;
optional string cache_id = 3;
}

View file

@ -0,0 +1,12 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message OfflineError {
optional int64 error_code = 1;
optional string track = 2;
}

View file

@ -0,0 +1,12 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message OfflineEvent {
optional string event = 1;
optional string data = 2;
}

View file

@ -0,0 +1,26 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message OfflineReport {
optional int64 total_num_tracks = 1;
optional int64 num_downloaded_tracks = 2;
optional int64 num_downloaded_tracks_keyless = 3;
optional int64 total_num_links = 4;
optional int64 total_num_links_keyless = 5;
map<string, int64> context_num_links_map = 6;
map<string, int64> linktype_num_tracks_map = 7;
optional int64 track_limit = 8;
optional int64 expiry = 9;
optional string change_reason = 10;
optional int64 offline_keys = 11;
optional int64 cached_keys = 12;
optional int64 total_num_episodes = 13;
optional int64 num_downloaded_episodes = 14;
optional int64 episode_limit = 15;
optional int64 episode_expiry = 16;
}

View file

@ -0,0 +1,11 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message OfflineUserPwdLoginNonAuth {
optional string connection_type = 1;
}

View file

@ -0,0 +1,19 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message PlaybackError {
optional bytes file_id = 1;
optional bytes playback_id = 2;
optional string track_id = 3;
optional int64 bitrate = 4;
optional int64 error_code = 5;
optional bool fatal = 6;
optional string audiocodec = 7;
optional bool external_track = 8;
optional int64 position_ms = 9;
}

View file

@ -0,0 +1,15 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message PlaybackRetry {
optional string track = 1;
optional bytes playback_id = 2;
optional string method = 3;
optional string status = 4;
optional string reason = 5;
}

View file

@ -0,0 +1,14 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message PlaybackSegments {
optional bytes playback_id = 1;
optional string track_uri = 2;
optional bool overflow = 3;
optional string segments = 4;
}

View file

@ -0,0 +1,14 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message PlayerStateRestore {
optional string error = 1;
optional int64 size = 2;
optional string context_uri = 3;
optional string state = 4;
}

View file

@ -0,0 +1,15 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message PlaylistSyncEvent {
optional string playlist_id = 1;
optional bool is_playlist = 2;
optional int64 timestamp_ms = 3;
optional int32 error_code = 4;
optional string event_description = 5;
}

View file

@ -0,0 +1,14 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message PodcastAdSegmentReceived {
optional string episode_uri = 1;
optional string playback_id = 2;
optional string slots = 3;
optional bool is_audio = 4;
}

View file

@ -0,0 +1,17 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message Prefetch {
optional int64 strategies = 1;
optional int64 strategy = 2;
optional bytes file_id = 3;
optional string track = 4;
optional int64 prefetch_index = 5;
optional int64 current_window_size = 6;
optional int64 max_window_size = 7;
}

View file

@ -0,0 +1,12 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message PrefetchError {
optional int64 strategy = 1;
optional string description = 2;
}

View file

@ -0,0 +1,13 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ProductStateUcsVerification {
map<string, string> additional_entries = 1;
map<string, string> missing_entries = 2;
optional string fetch_type = 3;
}

View file

@ -0,0 +1,13 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message PubSubCountPerIdent {
optional string ident_filter = 1;
optional int32 no_of_messages_received = 2;
optional int32 no_of_failed_conversions = 3;
}

View file

@ -0,0 +1,12 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message ReachabilityChanged {
optional string type = 1;
optional string info = 2;
}

View file

@ -0,0 +1,12 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message RejectedClientEventNonAuth {
optional string reject_reason = 1;
optional string event_name = 2;
}

View file

@ -0,0 +1,14 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message RemainingSkips {
optional string interaction_id = 1;
optional int32 remaining_skips_before_skip = 2;
optional int32 remaining_skips_after_skip = 3;
repeated string interaction_ids = 4;
}

View file

@ -0,0 +1,18 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message RequestAccounting {
optional string request = 1;
optional int64 downloaded = 2;
optional int64 uploaded = 3;
optional int64 num_requests = 4;
optional string connection = 5;
optional string source_identifier = 6;
optional string reason = 7;
optional int64 duration_ms = 8;
}

View file

@ -0,0 +1,22 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message RequestTime {
optional string type = 1;
optional int64 first_byte = 2;
optional int64 last_byte = 3;
optional int64 size = 4;
optional int64 size_sent = 5;
optional bool error = 6;
optional string url = 7;
optional string verb = 8;
optional int64 payload_size_sent = 9;
optional int32 connection_reuse = 10;
optional double sampling_probability = 11;
optional bool cached = 12;
}

View file

@ -0,0 +1,13 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message StartTrack {
optional bytes playback_id = 1;
optional string context_player_session_id = 2;
optional int64 timestamp = 3;
}

View file

@ -0,0 +1,19 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message Stutter {
optional bytes file_id = 1;
optional bytes playback_id = 2;
optional string track = 3;
optional int64 buffer_size = 4;
optional int64 max_buffer_size = 5;
optional int64 file_byte_offset = 6;
optional int64 file_byte_total = 7;
optional int64 target_buffer = 8;
optional string audio_driver = 9;
}

View file

@ -0,0 +1,18 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message TierFeatureFlags {
optional bool ads = 1;
optional bool high_quality = 2;
optional bool offline = 3;
optional bool on_demand = 4;
optional string max_album_plays_consecutive = 5;
optional string max_album_plays_per_hour = 6;
optional string max_skips_per_hour = 7;
optional string max_track_plays_per_hour = 8;
}

View file

@ -0,0 +1,24 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message TrackNotPlayed {
optional bytes playback_id = 1;
optional string source_start = 2;
optional string reason_start = 3;
optional string source_end = 4;
optional string reason_end = 5;
optional string play_context = 6;
optional string play_track = 7;
optional string display_track = 8;
optional string provider = 9;
optional string referer = 10;
optional string referrer_version = 11;
optional string referrer_vendor = 12;
optional string gaia_dev_id = 13;
optional string reason_not_played = 14;
}

View file

@ -0,0 +1,18 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message TrackStuck {
optional string track = 1;
optional bytes playback_id = 2;
optional string source_start = 3;
optional string reason_start = 4;
optional bool offline = 5;
optional int64 position = 6;
optional int64 count = 7;
optional string audio_driver = 8;
}

View file

@ -0,0 +1,14 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.event_sender.proto;
option optimize_for = CODE_SIZE;
message WindowSize {
optional int64 width = 1;
optional int64 height = 2;
optional int64 mode = 3;
optional int64 duration = 4;
}

View file

@ -1,51 +0,0 @@
syntax = "proto2";
message Rule {
optional string type = 0x1;
optional uint32 times = 0x2;
optional uint64 interval = 0x3;
}
message AdRequest {
optional string client_language = 0x1;
optional string product = 0x2;
optional uint32 version = 0x3;
optional string type = 0x4;
repeated string avoidAds = 0x5;
}
message AdQueueResponse {
repeated AdQueueEntry adQueueEntry = 0x1;
}
message AdFile {
optional string id = 0x1;
optional string format = 0x2;
}
message AdQueueEntry {
optional uint64 start_time = 0x1;
optional uint64 end_time = 0x2;
optional double priority = 0x3;
optional string token = 0x4;
optional uint32 ad_version = 0x5;
optional string id = 0x6;
optional string type = 0x7;
optional string campaign = 0x8;
optional string advertiser = 0x9;
optional string url = 0xa;
optional uint64 duration = 0xb;
optional uint64 expiry = 0xc;
optional string tracking_url = 0xd;
optional string banner_type = 0xe;
optional string html = 0xf;
optional string image = 0x10;
optional string background_image = 0x11;
optional string background_url = 0x12;
optional string background_color = 0x13;
optional string title = 0x14;
optional string caption = 0x15;
repeated AdFile file = 0x16;
repeated Rule rule = 0x17;
}

View file

@ -0,0 +1,14 @@
// Extracted from: Spotify 1.1.33.569 (Windows)
syntax = "proto3";
package spotify.anchor.extension;
option objc_class_prefix = "SPT";
option java_multiple_files = true;
option java_outer_classname = "AnchorExtensionProviderProto";
option java_package = "com.spotify.anchorextensionprovider.proto";
message PodcastCounter {
uint32 counter = 1;
}

113
protocol/proto/apiv1.proto Normal file
View file

@ -0,0 +1,113 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto3";
package spotify.offline.proto;
import "google/protobuf/timestamp.proto";
import "offline.proto";
option optimize_for = CODE_SIZE;
message ListDevicesRequest {
string user_id = 1;
}
message ListDevicesResponse {
repeated Device devices = 1;
}
message PutDeviceRequest {
string user_id = 1;
Body body = 2;
message Body {
Device device = 1;
}
}
message BasicDeviceRequest {
DeviceKey key = 1;
}
message GetDeviceResponse {
Device device = 1;
}
message RemoveDeviceRequest {
DeviceKey key = 1;
bool is_force_remove = 2;
}
message RemoveDeviceResponse {
bool pending = 1;
Device device = 2;
}
message OfflineEnableDeviceResponse {
Restrictions restrictions = 1;
}
message ListResourcesResponse {
repeated Resource resources = 1;
google.protobuf.Timestamp server_time = 2;
}
message WriteResourcesRequest {
DeviceKey key = 1;
Body body = 2;
message Body {
repeated ResourceOperation operations = 1;
string source_device_id = 2;
string source_cache_id = 3;
}
}
message ResourcesUpdate {
string source_device_id = 1;
string source_cache_id = 2;
}
message DeltaResourcesRequest {
DeviceKey key = 1;
Body body = 2;
message Body {
google.protobuf.Timestamp last_known_server_time = 1;
}
}
message DeltaResourcesResponse {
bool delta_update_possible = 1;
repeated ResourceOperation operations = 2;
google.protobuf.Timestamp server_time = 3;
}
message GetResourceRequest {
DeviceKey key = 1;
string uri = 2;
}
message GetResourceResponse {
Resource resource = 1;
}
message WriteResourcesDetailsRequest {
DeviceKey key = 1;
Body body = 2;
message Body {
repeated Resource resources = 1;
}
}
message GetResourceForDevicesRequest {
string user_id = 1;
string uri = 2;
}
message GetResourceForDevicesResponse {
repeated Device devices = 1;
repeated ResourceForDevice resources = 2;
}

View file

@ -1,95 +0,0 @@
syntax = "proto2";
message AppInfo {
optional string identifier = 0x1;
optional int32 version_int = 0x2;
}
message AppInfoList {
repeated AppInfo items = 0x1;
}
message SemanticVersion {
optional int32 major = 0x1;
optional int32 minor = 0x2;
optional int32 patch = 0x3;
}
message RequestHeader {
optional string market = 0x1;
optional Platform platform = 0x2;
enum Platform {
WIN32_X86 = 0x0;
OSX_X86 = 0x1;
LINUX_X86 = 0x2;
IPHONE_ARM = 0x3;
SYMBIANS60_ARM = 0x4;
OSX_POWERPC = 0x5;
ANDROID_ARM = 0x6;
WINCE_ARM = 0x7;
LINUX_X86_64 = 0x8;
OSX_X86_64 = 0x9;
PALM_ARM = 0xa;
LINUX_SH = 0xb;
FREEBSD_X86 = 0xc;
FREEBSD_X86_64 = 0xd;
BLACKBERRY_ARM = 0xe;
SONOS_UNKNOWN = 0xf;
LINUX_MIPS = 0x10;
LINUX_ARM = 0x11;
LOGITECH_ARM = 0x12;
LINUX_BLACKFIN = 0x13;
ONKYO_ARM = 0x15;
QNXNTO_ARM = 0x16;
BADPLATFORM = 0xff;
}
optional AppInfoList app_infos = 0x6;
optional string bridge_identifier = 0x7;
optional SemanticVersion bridge_version = 0x8;
optional DeviceClass device_class = 0x9;
enum DeviceClass {
DESKTOP = 0x1;
TABLET = 0x2;
MOBILE = 0x3;
WEB = 0x4;
TV = 0x5;
}
}
message AppItem {
optional string identifier = 0x1;
optional Requirement requirement = 0x2;
enum Requirement {
REQUIRED_INSTALL = 0x1;
LAZYLOAD = 0x2;
OPTIONAL_INSTALL = 0x3;
}
optional string manifest = 0x4;
optional string checksum = 0x5;
optional string bundle_uri = 0x6;
optional string small_icon_uri = 0x7;
optional string large_icon_uri = 0x8;
optional string medium_icon_uri = 0x9;
optional Type bundle_type = 0xa;
enum Type {
APPLICATION = 0x0;
FRAMEWORK = 0x1;
BRIDGE = 0x2;
}
optional SemanticVersion version = 0xb;
optional uint32 ttl_in_seconds = 0xc;
optional IdentifierList categories = 0xd;
}
message AppList {
repeated AppItem items = 0x1;
}
message IdentifierList {
repeated string identifiers = 0x1;
}
message BannerConfig {
optional string json = 0x1;
}

View file

@ -0,0 +1,27 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto3";
package spotify.extendedmetadata.audiofiles;
import "metadata.proto";
option optimize_for = CODE_SIZE;
option java_package = "com.spotify.audiophile.proto";
message NormalizationParams {
float loudness_db = 1;
float true_peak_db = 2;
}
message ExtendedAudioFile {
metadata.AudioFile file = 1;
NormalizationParams file_normalization_params = 2;
NormalizationParams album_normalization_params = 3;
}
message AudioFilesExtensionResponse {
repeated ExtendedAudioFile files = 1;
NormalizationParams default_file_normalization_params = 2;
NormalizationParams default_album_normalization_params = 3;
}

View file

@ -0,0 +1,21 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto3";
package spotify.automix.proto;
option optimize_for = CODE_SIZE;
message AutomixMode {
AutomixStyle style = 1;
}
enum AutomixStyle {
NONE = 0;
DEFAULT = 1;
REGULAR = 2;
AIRBAG = 3;
RADIO_AIRBAG = 4;
SLEEP = 5;
MIXED = 6;
}

View file

@ -0,0 +1,12 @@
// Extracted from: Spotify 1.1.61.583 (Windows)
syntax = "proto2";
package spotify.player.proto;
option optimize_for = CODE_SIZE;
message AutoplayContextRequest {
required string context_uri = 1;
repeated string recent_track_uri = 2;
}

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