GithubHelp home page GithubHelp logo

madek / madek Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 1.0 1.2 MB

Madek is a web-based archive for sharing and cataloging images, video, audio and documents.

Home Page: http://madek.zhdk.ch

License: GNU General Public License v3.0

Shell 36.69% JavaScript 10.29% Ruby 53.02%
linked-data madek media-library semantic-web web-application

madek's Introduction

Madek

Madek is a media archival, management and sharing system that can archive video, audio and image files along with their metadata. The system crowdsources the chore of retrieving and assigning metadata to the users themselves instead of putting all the burden on the archival expert.

Current Version

The latest stable release is to be found here.

Components and Services

The Madek-Web-Application

The madek-webapp is the main component of Madek. It also has a dedicated Admin Panel as well as a dedicated Authentication Service & UI.

The Madek-API

The madek-api is a JSON / JSON-ROA API for Madek.

Copyright and license

Madek is (C) Zürcher Hochschule der Künste (Zurich University of the Arts).

Madek is Free Software under the GNU General Public License (GPL) v3, see the included LICENSE file for license details.

Visit our main website at http://www.zhdk.ch and the IT center at http://itz.zhdk.ch

madek's People

Contributors

drtom avatar eins78 avatar michalpodlecki avatar nimaai avatar phiku avatar sedurodotcom avatar urs-van-binsbergen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

broggn

madek's Issues

next release

info

name???


showstoppers

  • transfer resp. bugs @phiku
  • merge admin keyword stuff @mfa

changes

webapp

  • fix: view: uploader
  • feature: transfer responsibility
  • ci: set browser screen size (small laptop)
  • fix: view: increase resource box auto-loading
  • fix: bundle: mark assets that depend on externals
  • chore(package): update video.js to version 5.16.0
  • fix: view: shuffle teaser and catalog images
  • fix: view: image preview handling
  • refactor: MediaResBox params handling
  • fix: view: collection highlights preview display
  • fix: my: ActivityStream: remove 'beta', fallback message

deploy

  • reverse-proxy: enable letsencrypt cert if present

[feat] browse related metadata / "Stöbern"

⚠️ Draft!


story

a very common pattern:

"This Thing has that Tag, here are some other Things with the same Tag."

Madek just has more than just "Tags".

implementation

  • depends on efficient DB queries, this has to be implemented first
  • relatively simple UI decoration, if like in v2
  • after team discussion, was moved to "later" for these reasons
    • the ui pattern could be re-used in the explore/catalog
    • it is unfortunate to "hide" this kind of explorative UI in a separate view,
      only accessible via a link in the dropdown menu

design ideas

current UI is optimized for many results/many meta keys.
rows should expand if there are few if them.
simple instances that only use core keywords would just get a full size box

for each MetaDatum{Keyword,People} of the resource
  for each value
    select all resources of same type and with a MetaDatum of same key/value


v2 screenshots

https://medienarchiv.zhdk.ch/entries/e232dd51-6f66-4848-8dbf-eb2faaeb1533:
screen shot 2017-04-28 at 10 22 10

https://medienarchiv.zhdk.ch/entries/5ea51dda-8dc3-4438-a397-2f4dc7fc6070:
screen shot 2017-04-28 at 10 22 42

https://medienarchiv.zhdk.ch/entries/75714ae2-6542-4b9f-8840-a46d50338745:
screen shot 2017-04-28 at 10 23 04

[feat] MetaDatum::Credits / "Rollen für Personen"

Judith Scheiber: Responsible for the feature (requirements, testing, final approval)
Michal: Development
ask Max: Any questions to the project
Contents of project (structure, thoughts): https://github.com/Madek/madek/projects/7

Specification written by Judith Scheiber - translated and shortened by Nadja:
20180502_Summary of Requirements.docx

Personen sollen Rollen wie Regisseur, Ton, Schauspieler zugewiesen können.

Neuer Typ MetaDatum::Roles!

UI

  • MetaDatumInput
  • output/decorator

DB

  • Mischung aus Keywords, ::People und ::String! Challenge: nicht zu viel und nicht zu wenig reusen!
    • mindestens aus admin/user sicht soll es möglichst gleich sein weil besser verständlich
  • im idealfall auch noch mit string! (kommentar, spezifizierung)
    • z.b. bei rollen nach fixem schema (kino), aber irgendein spezialfall
    • bei Schauspieler der Charakter-Name
    • $Person hatte bei $Film die Funktion $Rolle als $String
# example: http://www.imdb.com/title/tt4288182/fullcredits

# Atlanta (2016) (TV Series)
#   - Directed by: Donald Glover
#   - Writing Credits: Donald Glover
#   - Produced by: Donald Glover
#   - Cast: Donald Glover (Earnest 'Earn' Marks); Brian Tyree Henry (Alfred 'Paper Boi' Miles)

entries:
  - id: 1111

meta_keys:
  - id: 'credits:tv'
    label: 'TV-Serien Rollen'
    value_type: 'MetaDatum::Roles'

roles: # like keywords: unique terms per metakey, `#is_extensible?`
  - { id: 99991, term: 'Directed by' }
  - { id: 99992, term: 'Writing Credits' }
  - { id: 99993, term: 'Produced by ' }
  - { id: 99994, term: 'Cast' }

people:
  44441:
    name: Donald Glover # http://www.imdb.com/name/nm2255973
  44442:
    name: Brian Tyree Henry # http://www.imdb.com/name/nm3109964

meta_data:
  - meta_key_id: 'credits:tv'
    media_entry_id: 11111
    person_id: 44441
    role_id: 99991

  - meta_key_id: 'credits:tv'
    media_entry_id: 11111
    person_id: 44441
    role_id: 99992

  - meta_key_id: 'credits:tv'
    media_entry_id: 11111
    person_id: 44441
    role_id: 99993

  - meta_key_id: 'credits:tv'
    media_entry_id: 11111
    person_id: 44441
    role_id: 99994
    string: Earnest 'Earn' Marks

  - meta_key_id: 'credits:tv'
    media_entry_id: 11111
    person_id: 44442
    role_id: 99994
    string: Alfred 'Paper Boi' Miles
---

DB: `external_uri` should take list of values

2 times, columns in both tables keywords and people

  • db: migrate schema + data to array
  • admin: edit fields support multiple values
  • admin: index/show support array of links
  • webapp: show pages support array of links

[feat] SuperAdmin mode in webapp

story

As a Madek Admin, I want to enter the "SuperAdmin" mode.
When activated, the webapp grants me every possible Permission,
e.g. I can see and edit everything from every User.

This is needed for support and editorial tasks, for example to assess the usage of a certain Keyword in all existing content, regardless of its visibility to the public or the Admin.

Note that this is different from "Switch to User", especially in regards to recording
the editing User in the DB, like in a EditSession:

  • "Switch to User" has the same effect as if the Admin would have normally logged in as that User (EditSession shows User)
  • "SuperAdmin" behaves as if the Admin has edit rights to everything (EditSession shows Admin)

tasks

  • backend:

    • policies: overide default policy when current user is in superadmin mode
    • policies: check that all inherit from DefaultPolicy
    • controller: method to allow toggling super_admin_mode for Admins, which will be recorded in their session
  • ui:

    • app/layout: UserMenu: add super_admin_mode toggle
    • app/layout: design/add simple and obvious styles to indicate super admin mode

[release] stable 3.x release

checklist

  • cleanup/check all the (submodule) READMEs (incl. Licensing)
  • security headers: CSP, …
  • doc: MD type Licenses is unofficial feature (and more?)
  • DB: force meta_key_ids to lowercase
  • DB: Core Vocab rights vs rightsHolder

nice-to-have

(do it or document it)

  • zhdk-integration: move everything to gem, provide plugin hooks? (postlogin)
  • release script: recursive tagging, github release (message, archive)

Message from HSLU regarding the API

"Ich sass gestern noch mit unserer Evento-Spezialistin zusammen, damit ich die Felder, die von Evento in die Portfolio DB gelangen müssen, genauer definieren kann und die Regeln klar sind. Dabei kamen wir auf verschiedene Lösungen. Einerseits könnte man die E-Mail-Adresse weitergeben oder die Departements-Zugehörigkeit.
Damit man sich mehr vorstellen kann, habe ich dir die Tabelle mal reinkopiert. Unser Entwickler hat dies noch nicht gesehen. Von den Ressourcen her können sie das erst im Q1/2018 realisieren (Aussage vom 31.10.). Kann aber gut sein, dass sie irgendwann eine Lücke haben (vor allem wenn sie sehen, dass eure Seite bereits bereit ist). Der Entwickler wird der ersten Kontakt mit euch nicht ohne mich aufnehmen.

bildschirmfoto 2017-11-21 um 13 17 04

Bei den Dozierenden haben wir zusätzliche Einschränkungen, damit nur jene ausgewählt werden, die auch Betreuer/in einer BA- oder MA-Arbeit sein könnten.“

[admin] add support for re-encoding video Previews

building on #15, adding support for video is much simpler:
generalize the work already done for audio and adapt it to use the new profile attribute to match previews to their configurations.

Also, we'll need a simple fix to deal with the zencoder rate limit.


tasks:

  • Admin UI: re-encoding "wizard" @eins78

implementation controller logic @michalpodlecki
(details will be written down after making the prototype, will be in form of mock methods)


some docs wtf we are doing and why

Situation:

We need to trigger many jobs from the server.
This takes a long time, we can't make it faster;
but even if we could we are slowed down by the API rate limit

Problem:

If we send 1 request from the browser, in a simple approach
the controller is blocking the response, waiting for the complete queue to finish.
In practice the request will time out, leaving the whole system in an
inconsistent state, because the queue started in the controller is not reliably aborted.

Solution:

The request only deals with the first 100 items in the queue
and responds with the number of remaining items.
A simple JS client takes care of continously sending requests
as long as there are items in the queue.

Prior Art:

  • WordPress Multisite Admin Mass Site Upgrade:
    simpler solution using redirects but much worse UX and hard to makes stable/resiliant.
  • Doku wiki Admin UI Mass Renaming of Pages (very similar solution)

Bonus:

By using a JS client the process could be made more resiliant:

  • While process is running, it is warned against leaving/closing the window
  • there is a "Abort" button which waits for the current request to finish cleanly
  • waiting between requests (for rate limiting)

Deals with rate limits imposed by Zencoder.
The server can just query the DB to check how many ZencoderJobs were sent in the last time and if we should slow down.
If this is the case, the client will receive a 420 status
and wait for 1 minute before trying further (to not overload our own server).

Global Lock:
Only 1 User can open this View in 1 Browser at the time, lock times out after 5 minutes.
(Implemented by storing the session id in special Rails.cache key)

Optimise oembed how media is integrated in other systems such as Moodle

  • restyle


With nanoo film it works well

  • Support preview of PDFs of Medienarchiv in oembed plugin. At the moment we get an error "not supported". - really needed!? then create a new ticket.

Person can not be clearly identified

Problem mentioned by HSLU and ZHdK

Same name can pop up twice or more times,
For example:
Markus Meier (User 1)
Markus Meier (User 2)

Sections where these user names are shown

  • Edit meta-data - user
  • Set permissions - adjust with email address - ask Mischa, if we are allowed to show the email address
  • Show permissions
  • Filter
  • No adjustiment needed for list view
  • work group view page - list of users
  • work group edit page - list of users

quickest solutions:

  • Enhancement in Admin-interface. New fields for additional information where these few users can be differed.
  • Admin can search for users with same names

Needs a bit more work:

  • Show more information in a popup or similar solution (E-Mail, Picture, etc.)

Possible future solution (project):

  • Data could be imported from AGW or wikidata or GND (Deutsche Nationalbibliothek)

Check with Mischa Senn which information we are allowed to publish.

Comparison Gitbook - Wiki

Check if all information from Wiki-instructions are in gitbook

Communicate to users the URLs, which have changed

Exporter: Correct Umlaute in exported text / titles / names

Msg. from Judith:
Umlaute und Buchstaben wie é werden falsch dargestellt:

image001

Ich nehme an, es braucht einfach diesen Unicode.

Ich habe noch mit einer weiteren Datei getestet und gesehen, dass im HTML-File die Umlaute korrekt sind. Das json-File wird vielleicht ja von den Maschinen dann schon korrekt interepretiert.

enhance MediaPlayer for Audio

Der Embeed Madek Player soll für Audio ausgebaut werden

  • FE: MediaPlayer: use videojs for Audio
  • FE: embed view supports audios
  • BE: oembed api support type audio

Media entry - show smaller preview

Klick on preview should show the second biggest picture (1024 x 768) instead of the biggest.

This could be a partial solution until we finish with the file-handling feature-ticket.

Could this be a possible solution.

Problem mentioned from susanne

[feat] CustomURL / "Sprechende URLs"

for Resources: MediaEntry, Collection

story

Each Resource has a "permalink" (a UUID-based URL),
like http://madek.example.com/entries/1234-444….

As a Madek User, I want to give it a "nice link",
like http://madek.example.com/entries/my-artwork.

Once set up, the permalink will be redirect
so that all users always see the "nice link" in their browser
and use it when sharing/bookmarking the link.

Later, I can also transfer the "nice link" to a new Resource,
for example an updated version of my artwork.

ui steps (simple version)

As a Madek User
Given I have created a MediaEntry
I visit the MediaEntry detail view
From the resource actions menu
  I select "Set custom URL"
I am on the "custom_url" page for this MediaEntry
In the "custom_url" form
  I set the "name" to "my-artwork"
  I click on save

I am on the "custom_url" page for this MediaEntry
In the "custom_url" form
  I see a success message "…"
  The path of the browser address is/start_swith `/entries/my-artwork/…` # == is primary

In the "custom_url" form
  I add another custom URL "something-else" and save

I am on the "custom_url" page for this MediaEntry
In the "custom_url" form
  I see a success message "…"
  The path of the browser address is/start_swith `/entries/my-artwork/…` # == first one is still primary

check redirects:
- canonical url (UUID), 2. custom url redirect to primary; primary does not redirect

Disable account feature

We need a way to disable sign-in etc. for existing users respectively accounts. Preventing sign-in for instances not using the ZHdK-AGW or Switch AAI the password could be reset as a workaround. This cumberson and moreover the API tokens are not controlled by this.

Technical TODOs:

  • add column account_enabled with default true to the users table
  • expose this in the user resouce of the admin app
  • honor account_enabled when signing in via password through the webapp
  • honor account_enabled when accessing the API via an API token

Most of this can could be implemented by @michalpodlecki ; changing the API might need support or be done by @DrTom or @nimaai

Requirement from HSK - "Schwerpunkt Musik"

Hoi Tashi

Happy New Year, first of all!
2018 ist zwar schon nicht mehr ganz so neu, aber wir haben uns ja jetzt eine Weile nicht mehr gesehen.
Ich hoffe, du bist gut gestartet.

Darf ich dich grad mit einer MAdeK-Frage behelligen?
Es geht um die „Bereich ZHdK“.
Wir haben u.a. von Projekt-Erfassern aus dem Dpt. Musik Rückmeldungen bekommen, dass „ihr Bereich“ nicht existiert und sie folglich ihre Projekte nicht ausreichend kategorisieren können.
Das wirkt sich dann wieder auf die Darstellung auf der Website aus.

Konkret geht es u.a. um folgenden Case:

Olav Lervik möchte Projekte erfassen, die zu folgenden Studienbereichen gehören:

  1. Dpt. Musik > BA in Musik > Vertiefung „Komposition und Musiktheorie“ > Schwerpunkt „Komposition für Film, Theater und Medien“

  2. Dpt. Musik > MA in Composition and Theory > Vertiefung „Komposition“ > Schwerpunkt „Komposition für Film, Theater und Medien“

Für den Fall 1, Bachelor, scheint es nur einen „Bereich ZHdK“ bis zur Ebene „Vertiefung“ zu geben:
Bachelor Musik - Komposition und Musiktheorie (DMU_FMU_BMU_VKOT.alle)

Ist das korrekt?

Ist es MAdeK-seitig möglich, die Ebene „Schwerpunkt“ verfügbar zu machen als Kategorie (BA und MA)?

Wenn ja: Könnt „ihr“ das bitte machen? Oder sind diese Daten bei „euch“ nicht vorhanden?
Könntest du uns bitte informieren, was allenfalls dazu getan werden müsste und in welchem Zeithorizont das umgesetzt werden könnte?

(Ganz grob als Hausnummer... – damit wir die Anfragenden entsprechend informieren können)

Das wäre super.
Ganz herzlichen Dank im Voraus für deine Unterstützung!

Herzliche Grüsse
Yvonne

HfG-Instance: Improvement in Configuration

The Instance works well and all data are there! Great!

Following aspects are missing:

Madek configuration: browsing restrictions

bildschirmfoto 2018-02-02 um 18 14 49
We have the the new browsing options on the bottom of a media entry detail view and as a context based action (Stöbern nach ähnlichen Inhalten).
It works only of in the Admin-Interface explicitly excludes browsing for the metakey rights:certificate. Otherwise a 500-Error is given.
How can we make sure that a Madek instance can be set up by persons who does not know this? Remark in Admin-Intface? Documentation? Automatic exclusion of this metakey?

[paused] Admin: "Missing" media files listing + reencoding

feature needs more work but is not currently priotized,
so it's hidden from UI.

more info in german


Media Reencoding status quo

Instanz-Config:
Hat Zencoder-Config Output-Optionen, genannt "profiles" (jeweils für audio und video).
Jedes Profil hat eine id, z.B. mp4 oder mp4_HD.

DB:

  • MediaFiles haben eine Liste von conversion_profiles (z.B. {mp4, mp4_HD}),
    d.h. für welche der konfigurierten Profile ein Preview erzeugt wurde.

  • Previews haben ein conversion_profile
    (die id zur config wegen der sie erzeugt wurden)

  • Query: "missing profiles" gibt (je für audio/video) eine Liste der fehlenden Profile.
    Das sind alle Profile für die kein Preview erzeugt wurde und auch kein
    Zencoder-Job läuft.

Admin-Bereich:

MediaFiles-Tabelle zeigt "with missing" Status an, und erlaubt filtern nach diesem.

Batch-Reencode Feature kann in einem (potentiell sehr lang dauernden) Prozess
alle "missing" profiles re-encodieren (die profile können ausgewählt werden).
Das Feature kann nur von einem User gleichzeitig benutzt werden (locking).
Der Prozess achtet darauf dass Jobs nicht zu schnell gesendet werden (Zencoder Rate-Limiting),
und nicht mehr als 10 Jobs gleichzeitig laufen
(sonst Performanz-Probleme durch zuviele parallele Downloads von Zencoder aus dem Server).

Problem

Nachdem der Prozess einmal erfolgreich in Produktion durchgelaufen ist,
stellte sich heraus das die "is missing" query immer noch zu einfach ist.

Nicht jeder erfolgreiche Zencoder-Job für ein Profil erzeugt ein Preview!
Daher bleibt ein gewisser Teil der Medien immer "with missing".

Wir müssen Zencoders "Conditional Outputs" benutzen, um nur HD-Versionen
für Videos zu erzeugen, die eine gewisse Mindestgröße haben.
Andernfalls würde Zencoder für ein SD-Video ein HD-Preview erzeugen,
das war HD heisst aber natürlich immer noch nur SD-groß ist
(== doppelte Kosten, Speicherplatz).

Andererseits gibt es auch ungültige Files, für die keinerlei Preview erzeugt
werden kann, wir aber davon ausgehen (z.B. .midi, ist nicht supported).

Lösung / TODO

Query muss zusätzlich "erkennen", wenn ein Profil nicht "gewünscht" ist.
Das ist nicht so einfach, weil wir nicht wissen wie groß die Original-Files sind
(Stichwort Filehandling).

Mit besserem Filehandling kann das relativ einfach DB implementiert werden
(conditional outputs logik aus der profile config anwenden).

Im aktuellen Zustand wäre es wahrscheinlich möglich aber relativ komplex,
da die Query sich nicht nur auf MediaFiles und Previews bezieht sondern
auch noch auf auf die zugehörigen ZencoderJobs.

Tasks:

  • problemlösung (s.o.)
  • Re-encode missing button auch in MediaFile-Detailansicht

Exporter problem or user handling problem?

Issue from Rolf:

Ich habe es im Netzwerk jetzt nochmals mit allen Laufwerken als Zielort versucht:
das exportierte Set - https://medienarchiv.zhdk.ch/sets/c23f9850-6c9e-45bf-b59b-21fcb3591c31 mit 2 ME: Video und PDF

C: geht nicht weil der Profilspeicherplatz zu klein ist.

Ein Export auf H: (rwolfens) und S: (Rektorat_MIZ) dauert sehr lange (über 90 Minuten).

Resultat:
Das Originalvideo (.mov) und die Metadaten zum Set und den ME’s sind vollständig da, das Originalvideo ist abspielbar.

Die beiden Preview-Videos (mp4, webm) sind zwar da, es erscheint jedoch die Fehlermeldung zum Pfad (jpg ‘Preview_Video’ angehängt).
Die Standbilder, die von Zencoder generiert werden (zusätzliche ID zur UUID im Präfix) melden ebenfalls ein Pfadproblem (jpg Preview_Standbild angehängt).

Die Standbilder, die früher vom Medienarchiv generiert wurden, sind hingegen in Ordnung.

(muss die Exporter App auf dem gleichen Laufwerk liegen wie der Zielordner?)

Ich hoffe, die Erläuterungen sind verständlich.

I exported the data via Expoter to my user-folder and had no problems.

[feat] transfer responsibility / "Verantwortlichkeit übertragen"

for Resources: MediaEntry, Collection

story

As a Madek User, I am the initial "Responsible" (responsible_user) for all Resources that I have created.
Technically, Resposibles have implicit rights for all managed Permissions and are the only Users allowed to delete a Resource. They are also "responsible" for the associated content and files in a legal sense.
Because there always has to be exactly 1 Responsible for each Resource, it can only be transfered to another User in 1 step.
Because the "old" Responsible would lose the implicit Permissions, they can select the ones they want to retain in the same step (usually at least view & download).

zhdk

Students in some departments are submitting their diploma works via the Medienarchiv.
Those departments defined as their submissions process that the last step is the transferal
of the responsibitly to their designated administrator (secretary).

ui

Form: transfer responsibility
-----------------------------------------------------------------------------------------
new responsible user: [user autocomplete]

i want to keep these permissions: [x] view [x] download [x] edit [x] manage permissions

[cancel] [SUBMIT]
-----------------------------------------------------------------------------------------

tasks

  • backend: Resource#transfer_responsibility

    for resources MediaEntry, Collection

    atomic transaction of the following steps:

    • updates responsible_user from A to B
    • creates Permissions for A (list explicitly given)
    • deletes any Permissions for B
  • ui: TransferResponsibilityForm
    view for resources MediaEntry, Collection

    • sub-view of show, not in a tab

      • could either be a "state" of the permissions form
      • or a modal (in this case it is even warranted)
    • form

      • autocomplete to select 1 User as the new responsible
      • a row like in the permission form for subject user,
        to select the permissions the old responsible want to retain

Users can not be cleary identified

User --> will create a new ticket for this feature

  • User-Autocomplete should show email address (like extended label for groups)
  • User-Autocomplete should detect UUID or UUID-based URLs (if user pastes …/people/$ID)
  • User-Autocomplete should detect exact match by email adress
  • People-Autocomplete should detect UUID or UUID-based URLs (if user pastes …/people/$ID)
  • specs

Add admin setting for internal embeds

Media (video, pdf, ...) is only accessible in paul.zhdk.ch if it's right is set to global = active.

If media can only be viewed by a closed group (any group or person), than the media is not accessible in paul.zhdk.ch.

Therefor we need a new right called "PAUL". The media is then only accessible to the users which have access to the course in PAUL.

Example with Vimeo:
bildschirmfoto 2018-04-03 um 16 22 11

[filehandling] add explicit "profile" attribute to audio/video Previews

for Previews with media_type: audio and video


currently:

# config

zencoder_audio_output_formats_defaults:
 - {audio_codec: 'vorbis', skip_video: true}
 - {audio_codec: 'mp3', skip_video: true}

# DB
media_files:
  - id: mf1
previews:
  - id: p1, codec: mp3, media_file: mf1
  - id: p2, codec: vorbis, media_file: mf1

new:

# config

zencoder_audio_output_formats:
 vorbis: {audio_codec: 'vorbis', skip_video: true}
 mp3: {audio_codec: 'mp3', skip_video: true}

# DB
media_files:
  - id: mf1
previews:
  - id: p1, conversion_profile: mp3, media_file: mf1
  - id: p2, conversion_profile: vorbis, media_file: mf1

There was already an attribute added which relates to the codec,
so to keep it simple we can rely on the following rules:

  1. The content of the existing configs won't change, just their structure (a map)
  2. The key of each config in the map will be the same as the "codec"
    (Because multiple configs with same config are not supported yet, we can safely assume this.)

questions:

Name of the attribute? conversion_profile? preview_profile? madek_preview_profile?
(Note that this is conceptually the same attribute as the thumbnail attr for Previews with media_type image, but we don't have to change that)


tasks

  • deploy: change config for audio, video (array to map)

  • DB: migration audio

    • add conversion_profile attribute to previews
    • set conversion_profile attribute for existing previews
      (find profile according to the "codec" prop, "id" of profile is the key of config in the map)
    • remove persisted codec (we use profile instead)
  • DB: migration videos

    • add conversion_profile attribute to previews
    • set conversion_profile attribute for existing previews
      (find profile according to the "codec" prop, "id" of profile is the key of config in the map)
  • DB: migration zencoder_jobs ???

  • admin/webapp

    • use new config name and format
    • adjust the filtering etc in mediafiles controller

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.