librespot/protocol/proto/offline.proto

91 lines
1.9 KiB
Protocol Buffer
Raw Normal View History

2024-12-15 19:51:02 +00:00
// Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3";
package spotify.offline.proto;
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
option optimize_for = CODE_SIZE;
message Capacity {
double total_space = 1;
double free_space = 2;
double offline_space = 3;
uint64 track_count = 4;
uint64 episode_count = 5;
}
2024-12-15 19:51:02 +00:00
message Capabilities {
bool remote_downloads_enabled = 1;
}
message Device {
string device_id = 1;
string cache_id = 2;
string name = 3;
int32 type = 4;
int32 platform = 5;
bool offline_enabled = 6;
Capacity capacity = 7;
2024-12-15 19:51:02 +00:00
Capabilities capabilities = 8;
google.protobuf.Timestamp updated_at = 9;
google.protobuf.Timestamp last_seen_at = 10;
bool removal_pending = 11;
2024-12-15 19:51:02 +00:00
string client_id = 12;
}
message Restrictions {
google.protobuf.Duration allowed_duration_tracks = 1;
uint64 max_tracks = 2;
google.protobuf.Duration allowed_duration_episodes = 3;
uint64 max_episodes = 4;
2024-12-15 19:51:02 +00:00
google.protobuf.Duration allowed_duration_abp_chapters = 5;
}
message Resource {
string uri = 1;
ResourceState state = 2;
int32 progress = 3;
google.protobuf.Timestamp updated_at = 4;
string failure_message = 5;
}
message DeviceKey {
string user_id = 1;
string device_id = 2;
string cache_id = 3;
}
message ResourceForDevice {
string device_id = 1;
string cache_id = 2;
Resource resource = 3;
}
message ResourceOperation {
enum Operation {
INVALID = 0;
ADD = 1;
REMOVE = 2;
}
2024-12-15 19:51:02 +00:00
Operation operation = 2;
string uri = 3;
}
message ResourceHistoryItem {
repeated ResourceOperation operations = 1;
google.protobuf.Timestamp server_time = 2;
}
enum ResourceState {
UNSPECIFIED = 0;
REQUESTED = 1;
PENDING = 2;
DOWNLOADING = 3;
DOWNLOADED = 4;
FAILURE = 5;
}