added image and audio #28
No reviewers
Labels
No labels
area: devops
area: discovery
area: docs
area: livestream
area: proposal
consider soon
Epic
good first issue
hacktoberfest
help wanted
icebox
level: 1
level: 2
level: 3
level: 4
needs: exploration
needs: grooming
needs: priority
needs: repro
needs: tech design
on hold
priority: blocker
priority: high
priority: low
priority: medium
resilience
Tom's Wishlist
type: bug
type: discussion
type: improvement
type: new feature
type: refactor
type: task
type: testing
unplanned
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: LBRYCommunity/types#28
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "stream_sub_types"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
the Image/Audio/Video oneOf seems wrong to me. we should have a place to put visual properties (height, width) and a place to put time properties (duration) as just separate things. Then anything with a height and a width can set its height and width. And anything with a duration can set its duration. There's no need to say "this is an image"
and furthermore, it would be good to think for tomorrow here before we get too sucked into adding all these fields. taxonomies are hard, and we're not the first people to make one. lets find one that exists and see what we can learn from how they do it.
finally, i'm not sure why you renumbered so many of those fields. the only thing that matters about the number "is it over 16 or not". the order of the fields does not matter, the specific number does not matter, etc.
I've spent a little bit of time researching this and was not able to find any established file meta data taxonomy. I imagine that if something like this was possible someone would have done it...
It's hard to build a taxonomy without having an existing system to dissect into possible taxonomy groups, etc.
Can we keep v2 of protobufs as simple buckets for file types and later once we've collected an adequate amount of types we can slice them up into attribute groups and do a v3 of protobufs?
Regarding the renumbered fields, I made the
Channel
andStream
messages group similar attributes together so that it's easy to see what's different and what's the same between them. I renumbered them for the exact reason you mention, that it doesn't really matter sub-16 and seems strange having them out of order.I'm thinking of the taxonomy problem as taking a single table data model and normalizing it into more logical sub-tables except that in our case, we're starting with a blank slate and are trying to start with a normalized model. I think it's going to be unnecessarily difficult to do it. It would be better and more efficient to first make a simple non-normalized meta data model and then later once we have the full model, go back and normalize it.
Is 1 BTC (deprecated)?
@ -20,3 +22,1 @@
string thumbnail_url = 16;
string cover_url = 17;
string language = 18;
string contact_email = 8;
Does a repeated language field mean this content is in both languages or either language?
Do we have an idea of how we'll (eventually) support the same claim being in 8 different languages with 8 different files? Is it compatible with this choice?
@ -55,3 +65,4 @@
message File {
bytes hash = 3;
string name = 1;
uint64 size = 2;
If we're adding these in this PR then I think we should add everything we're targeting first-class support for. Off the top of my head, games, text/markdown, pdf, and maker/3d file types are not on the list.
Also, is there any way to have
types
mapmedia_type
on to this type without a discrete field?@ -63,0 +94,4 @@
UNKNOWN_LANGUAGE = 0;
en = 1;
aa = 2;
ab = 3;
I can think of a number of additional fields for all of these. How deep do we want to be going on this right now vs. evolving it?
@ -55,3 +65,4 @@
message File {
bytes hash = 3;
string name = 1;
uint64 size = 2;
The
type
is mainly to store extra metadata; not as a way to determine the type of the stream. When there is metadata, this metadata is typed, hence the field is calledtype
(as opposed to a un-typed dictionary of key, values).media_type
is still the correct way to determine the file specific type of a stream.I don't know why BTC was dropped. It was already gone from v2 protobufs when I started integrated them.
@ -63,0 +94,4 @@
UNKNOWN_LANGUAGE = 0;
en = 1;
aa = 2;
ab = 3;
We can add more now or hold off and add more in the next release. I don't think it makes a difference (unless there is a field someone is waiting to have added, then we can add it now).
@ -20,3 +22,1 @@
string thumbnail_url = 16;
string cover_url = 17;
string language = 18;
string contact_email = 8;
I imagine that the languages and locations lists are specific to the content in the particular stream claim.
Since channels also have
languages
you could release a movie in multiple languages by making a channel for it (listing all languages in the channel metadata) then publish a version of the movie in those languages in that channel (and list only the single language in the stream claim).Perhaps channels within channels could also help here.
Re-added
BTC
.@ -60,3 +76,4 @@
message Video {
uint32 width = 1;
uint32 height = 2;
uint32 duration = 3;
@eukreign why have an unknown currency option? whats the point of a claim with a fee in a currency we don't know?
@ -63,0 +117,4 @@
bs = 23;
ca = 24;
ce = 25;
ch = 26;
1 - all these
UNKNOWN_*
fields don't make sense. if its unknown, just leave it out2 - common languages should go into the top 15. helps reduce the size.