librespot-protocol 0.7.1

The protobuf logic for communicating with Spotify servers
Documentation
// Extracted from: Spotify 1.2.52.442 (windows)

syntax = "proto2";

package spotify.show_cosmos.proto;

import "metadata/episode_metadata.proto";
import "metadata/show_metadata.proto";
import "played_state/episode_played_state.proto";
import "played_state/show_played_state.proto";
import "show_episode_state.proto";
import "show_show_state.proto";
import "show_offline_state.proto";

option objc_class_prefix = "SPTShowCosmos";
option optimize_for = CODE_SIZE;

message Item {
    reserved 6;
    reserved 7;
    reserved 8;
    reserved 9;
    optional string header_field = 1;
    optional cosmos_util.proto.EpisodeMetadata episode_metadata = 2;
    optional EpisodeCollectionState episode_collection_state = 3;
    optional EpisodeOfflineState episode_offline_state = 4;
    optional cosmos_util.proto.EpisodePlayState episode_play_state = 5;
}

message Header {
    optional cosmos_util.proto.ShowMetadata show_metadata = 1;
    optional ShowCollectionState show_collection_state = 2;
    optional cosmos_util.proto.ShowPlayState show_play_state = 3;
    optional ShowOfflineState show_offline_state = 4;
}

message Response {
    reserved "online_data";
    reserved 3;
    reserved 9;
    repeated Item item = 1;
    optional Header header = 2;
    optional uint32 unfiltered_length = 4;
    optional uint32 length = 5;
    optional bool loading_contents = 6;
    optional uint32 unranged_length = 7;
    optional AuxiliarySections auxiliary_sections = 8;
    optional uint32 range_offset = 10;
}

message AuxiliarySections {
    reserved 2;
    reserved 4;
    reserved 5;
    reserved 6;
    reserved 7;
    reserved 8;
    optional ContinueListeningSection continue_listening = 1;
    optional TrailerSection trailer_section = 3;
    optional LatestUnplayedEpisodeSection latest_unplayed_episode_section = 9;
    optional NextBestEpisodeSection next_best_episode_section = 10;
    optional SavedEpisodesSection saved_episodes_section = 11;
}

message ContinueListeningSection {
    optional Item item = 1;
}

message TrailerSection {
    optional Item item = 1;
}

message LatestUnplayedEpisodeSection {
    optional Item item = 1;
}

message NextBestEpisodeSection {
    enum Label {
        UNKNOWN = 0;
        TRAILER = 1;
        CONTINUE_LISTENING = 2;
        LATEST_PUBLISHED = 3;
        UP_NEXT = 4;
        FIRST_PUBLISHED = 5;
    }

    optional Label label = 1;
    optional Item item = 2;
}

message SavedEpisodesSection {
    optional uint32 saved_episodes_count = 1;
    optional uint32 downloaded_episodes_count = 2;
}