librespot/protocol/proto/metadata.proto
2016-04-28 19:24:39 +02:00

162 lines
3.8 KiB
Protocol Buffer

message TopTracks {
optional string country = 0x1;
repeated Track track = 0x2;
}
message ActivityPeriod {
optional sint32 start_year = 0x1;
optional sint32 end_year = 0x2;
optional sint32 decade = 0x3;
}
message Artist {
optional bytes gid = 0x1;
optional string name = 0x2;
optional sint32 popularity = 0x3;
repeated TopTracks top_track = 0x4;
repeated AlbumGroup album_group = 0x5;
repeated AlbumGroup single_group = 0x6;
repeated AlbumGroup compilation_group = 0x7;
repeated AlbumGroup appears_on_group = 0x8;
repeated string genre = 0x9;
repeated ExternalId external_id = 0xa;
repeated Image portrait = 0xb;
repeated Biography biography = 0xc;
repeated ActivityPeriod activity_period = 0xd;
repeated Restriction restriction = 0xe;
repeated Artist related = 0xf;
optional bool is_portrait_album_cover = 0x10;
optional ImageGroup portrait_group = 0x11;
}
message AlbumGroup {
repeated Album album = 0x1;
}
message Date {
optional sint32 year = 0x1;
optional sint32 month = 0x2;
optional sint32 day = 0x3;
}
message Album {
optional bytes gid = 0x1;
optional string name = 0x2;
repeated Artist artist = 0x3;
optional Type typ = 0x4;
enum Type {
ALBUM = 0x1;
SINGLE = 0x2;
COMPILATION = 0x3;
}
optional string label = 0x5;
optional Date date = 0x6;
optional sint32 popularity = 0x7;
repeated string genre = 0x8;
repeated Image cover = 0x9;
repeated ExternalId external_id = 0xa;
repeated Disc disc = 0xb;
repeated string review = 0xc;
repeated Copyright copyright = 0xd;
repeated Restriction restriction = 0xe;
repeated Album related = 0xf;
repeated SalePeriod sale_period = 0x10;
optional ImageGroup cover_group = 0x11;
}
message Track {
optional bytes gid = 0x1;
optional string name = 0x2;
optional Album album = 0x3;
repeated Artist artist = 0x4;
optional sint32 number = 0x5;
optional sint32 disc_number = 0x6;
optional sint32 duration = 0x7;
optional sint32 popularity = 0x8;
optional bool explicit = 0x9;
repeated ExternalId external_id = 0xa;
repeated Restriction restriction = 0xb;
repeated AudioFile file = 0xc;
repeated Track alternative = 0xd;
repeated SalePeriod sale_period = 0xe;
repeated AudioFile preview = 0xf;
}
message Image {
optional bytes file_id = 0x1;
optional Size size = 0x2;
enum Size {
DEFAULT = 0x0;
SMALL = 0x1;
LARGE = 0x2;
XLARGE = 0x3;
}
optional sint32 width = 0x3;
optional sint32 height = 0x4;
}
message ImageGroup {
repeated Image image = 0x1;
}
message Biography {
optional string text = 0x1;
repeated Image portrait = 0x2;
repeated ImageGroup portrait_group = 0x3;
}
message Disc {
optional sint32 number = 0x1;
optional string name = 0x2;
repeated Track track = 0x3;
}
message Copyright {
optional Type typ = 0x1;
enum Type {
P = 0x0;
C = 0x1;
}
optional string text = 0x2;
}
message Restriction {
optional string countries_allowed = 0x2;
optional string countries_forbidden = 0x3;
optional Type typ = 0x4;
enum Type {
STREAMING = 0x0;
}
repeated string catalogue_str = 0x5;
}
message SalePeriod {
repeated Restriction restriction = 0x1;
optional Date start = 0x2;
optional Date end = 0x3;
}
message ExternalId {
optional string typ = 0x1;
optional string id = 0x2;
}
message AudioFile {
optional bytes file_id = 0x1;
optional Format format = 0x2;
enum Format {
OGG_VORBIS_96 = 0x0;
OGG_VORBIS_160 = 0x1;
OGG_VORBIS_320 = 0x2;
MP3_256 = 0x3;
MP3_320 = 0x4;
MP3_160 = 0x5;
MP3_96 = 0x6;
OTHER = 0x7;
OTHER2 = 0x8;
OTHER3 = 0x9;
OTHER4 = 0xa;
OTHER5 = 0xb;
}
}