Feature #1476

Metadata implementation

Added by megabitdragon about 7 years ago. Updated almost 7 years ago.

Target version:
Start date:
Due date:
% Done:



With the information I have right now about the metadata server, here is how I propose to be implemented. Please provide feedback.
Api call:

GET /md?f=filename&h=hint

Here is my take on the implementation.
1. The shares API will have a content tag that has a list of tags

2. If content of a share contains "movies"
- When user touches the share, the files and folders list will be retrieved and metadata will be called for EVERY file and folder, with the hint "movie"
- Each file/folder will be displayed with the artwork of the movie with the title on top and the year. Here we can later get creative and show as much information as we deem suitable in a nice UI. it's important that we make this of very high quality. starting with something simple.
- When user taps on a movie, it will play the movie.
- this is higher priority and should be implemented first because it's simpler

3. If content of a share is "tv"
- When user touches the share, the files and folders list will be retrieved and metadata will be called for EVERY file and folder with the hint "tv"
- Each file/folder will be displayed on multiple lines with the artwork and description
- When user touches a TV show if it is a file it will just play. If it is a folder that folder will be listed as follows. The header will be the Artwork and description as on the previous screen. The files and folders will be displayed as a list (probably not the best way but I don't see a good way to do it now).
- Browsing deeper within the folder should keep the header.
- This is low priority and should not be implemented until we have done movies

4. In any other case, the folder listing will be shown (this is the default option for all shares)


#1 Updated by cpg about 7 years ago

  • Description updated (diff)

#2 Updated by cpg about 7 years ago

  • Description updated (diff)
  • Status changed from Feedback to Assigned
  • Assignee changed from cpg to megabitdragon

#3 Updated by cpg about 7 years ago

  • Description updated (diff)
  • Assignee changed from megabitdragon to ming

#4 Updated by cpg about 7 years ago

for example, one call (either local or remote) to:


returns this:


however, note that we have some flexibility on what the server can return here. we already changed it to lowercase keys based on your feedback.
we need to find the sweet spot here. i was tempted to remove the release_date. anyway, there are more then 30 fields in some cases, including like 12 types of artwork in various shapes that we can explore, but i would get the basics running first, then tweak to make it look world-class.

#5 Updated by ming about 7 years ago

First, I don’t know why are you tring to make things shorter sometimes (s for shares and h for hint for example). But according to your own conventions the path should be the whole word (/shares, /apps, /metadata).

You can cut the date and leave only title and artwork at moment. At least it would be a common minimum for movies, series and music.

#6 Updated by ming about 7 years ago

  • Status changed from Assigned to Feedback
  • Assignee changed from ming to cpg

#7 Updated by cpg about 7 years ago

that is the api as it is today. for an api, short is good.

about the /md vs /metadata, it's fine as /md.

we may have other metadata related calls later to get more info (see below). for example in the future we may want detailed metadata.

to give an idea of the wealth of info that can easily be returned, this is everything the server stores for the movie Divergent (2014):

"Credits":{"Id":157350,"Cast":[{"Character":"Beatrice Prior / Tris","Name":"Shailene Woodley","Profile_path":"/9FJvIdum52wWzIPoMjlySWFZV8c.jpg"},
{"Character":"Peter","Name":"Miles Teller","Profile_path":"/qugHZVw59nKfSX3CGs4eOYboaDh.jpg"},
{"Character":"Tobias \"Four\" Eaton","Name":"Theo James","Profile_path":"/dXk1mzDsJhQ1dR1SicIYp4nAXbi.jpg"},
{"Character":"Jeanine Matthews","Name":"Kate Winslet","Profile_path":"/b8tIN5SNgqsXwdmMVCMZP84ACcr.jpg"},
{"Character":"Marcus Eaton","Name":"Ray Stevenson",
"Profile_path":"/bcd9uqwfCVYsu7rduZnPVYUkyfU.jpg"},{"Character":"Tori","Name":"Maggie Q","Profile_path":"/bFc4F3jQLViv66ugp9nzB1uUldX.jpg"},
{"Character":"Christina","Name":"Zoë Kravitz","Profile_path":"/mbaNkULOCXCHo9TKfLXPSSbTbdv.jpg"},
{"Character":"Caleb Prior","Name":"Ansel Elgort","Profile_path":"/lKapN59YeY8CmTNviAAFyQ4aGdu.jpg"},{"Character":"Eric","Name":"Jai Courtney","Profile_path":"/lyEGjeoijr813uWUzNcT3WnqenA.jpg"},
{"Character":"Natalie Prior","Name":"Ashley Judd","Profile_path":"/9coNOxWJ0SOOLYJ32wibseYe25k.jpg"},{"Character":"Andrew Prior","Name":"Tony Goldwyn","Profile_path":"/cva5VMPST7EdYAYiMO7To277GCZ.jpg"},
{"Character":"Max","Name":"Mekhi Phifer","Profile_path":"/xrv9RDMPoTd9NsfpUzL81XglAmk.jpg"},
{"Character":"Will","Name":"Ben Lloyd-Hughes","Profile_path":""},
{"Character":"Al","Name":"Ole Christian Madsen","Profile_path":"/zn8j11Fi8aNwe4Gz5GrtyEC4wLW.jpg"},{"Character":"Edward","Name":"Ben Lamb","Profile_path":"/fcEjCuQsclcL2puhrLZjM1V5Qy4.jpg"},
{"Character":"Dauntless","Name":"Brandon Cyrus","Profile_path":"/7B0jeEfFzJSKkUA4XdPjVnPJA1t.jpg"}],
"Crew":[{"Department":"Directing","Name":"Neil Burger","Job":"Director","Profile_path":"/eUDHt2OWYnCwC8FOVIgU2uTPK3x.jpg"},
{"Department":"Writing","Name":"Evan Daugherty","Job":"Writer","Profile_path":""},
{"Department":"Writing","Name":"Vanessa Taylor","Job":"Screenplay","Profile_path":""},
{"Department":"Production","Name":"Douglas Wick","Job":"Producer","Profile_path":""},
{"Department":"Production","Name":"Lucy Fisher","Job":"Producer","Profile_path":""},
{"Department":"Production","Name":"Pouya Shahbazian","Job":"Producer","Profile_path":""}]},
"Overview":"DIVERGENT is a thrilling action-adventure film set in a world where people are divided into distinct factions based on human virtues. Tris Prior is warned she is Divergent and will never fit into any one group. When she discovers a conspiracy by a faction leader to destroy all Divergents, Tris must learn to trust in the mysterious Four and together they must find out what makes being Divergent so dangerous before it's too late. Based on the best-selling book series by Veronica Roth.","Title":"Divergent","Release_date":"2014-04-03"}

#8 Updated by ming about 7 years ago

I provided an example—/shares, /apps, /metadata (not /md).

#9 Updated by cpg almost 7 years ago

  • Priority changed from Normal to Low

Also available in: Atom