Skip to content

Parisson/Telemeta

Repository files navigation

Telemeta : collaborative media asset management system for musicology

Telemeta logo

Overview

Telemeta is a free and open source collaborative multimedia asset management system (MAM) which introduces fast and secure methods to archive, backup, transcode, analyse, annotate and publish any digitalized video or audio file with extensive metadata. It is dedicated to collaborative media archiving projects, research laboratories and digital humanities - especially in ethno-musicological use cases - who need to easily organize and publish documented sound collections of audio files, CDs, digitalized vinyls and magnetic tapes over a strong database, through a smart and secure platform, in accordance with open web standards.

Key features:

  • Secure archiving, editing and publishing of audio files over internet.
  • Pure HTML web user interface including dynamical forms and smart workflows
  • "On the fly" audio analyzing and transcoding thanks to TimeSide
  • Smart dynamical and skinnable audio player with annotations
  • Collaborative indexing with semantic ontologies and timecoded markers
  • Multi-format support : FLAC, OGG, MP3, WAV, MP4, WebM (video) and more
  • User management with individual desk, lists, profiles and rights
  • Playlist management for all users with CSV data export
  • Geo-Navigator for audio geolocalization
  • High level search engine
  • DublinCore compatibility
  • OAI-PMH data provider
  • RSS feed generators
  • XML and ZIP serialized backups
  • EPUB3 "audio book" collection exporter
  • SQLite, MySQL, PostgreSQL or Oracle DB backends
  • Multi-language support (now english and french)
  • Run on any OS

Telemeta has been developed since 2006 and is based exclusively on 100% open source modules.

It is mostly written in Python, HTML5 and JavaScript.

The Telemeta name stands for Tele as "remote access" and meta for "metadata".

Funding and support

To fund this long time libre and open source project, we need your explicit support. So if you use Telemeta in production or even in a development or experimental setup, please let us know by:

Thank you so much for your help!

News

1.7.x

  • Based on TimeSide 0.9
  • Use Django 1.8
  • Rename some directories
  • Better video streaming
  • Better logging

UPGRADING

git pull origin master
git submodule update --init --remote
docker-compose run app /srv/app/bin/upgrade_from_1.6_to_1.7.sh

WARNING

scripts/ and app/scripts/ directories has been renamed bin/ and app/bin/ respectively. So please adapt your management and maintenance personal script.

1.6.5 > 1.6.7

  • Setting utf8 database by default
  • Deactivate video.js for now
  • Use mysql:5
  • Fix phpmyadmin config
  • Various bugfixes

1.6.4

  • Minor bug fixes and improvments
  • Fix HTML5 audio compatibility (#173) for the web audio player. The SoundManager Flash player fallback should not be used in most modern web browser. Media files are now serves through Nginx (#155) which enables to stream music with byte range requests.
  • Add a User permission "can_run_analysis" to specify that a user or a group of users has the right to list and select advanced Timeside analysis to be displayed in the Timeside web audio player.
  • Add enumeration management and statitics
  • Improved media security allowing streaming through Nginx only from the application
  • Add TimeSide as a submodule
  • Add a validator for Corpus and Fonds
  • Upgrade various dependencies

1.6

Telemeta is now usable on any OS, ready for development and for production in 5 mn! B-)

  • Provide a docker image and composition for the full Telemeta application bundle. One month after the publication of docker-compose around march 2015, we had managed to build a prototyped composition which bundled all the dependencies of Telemeta and TimeSide. It took almost one year to deeply investigate all the capabilities of Docker and various images to finally release a propoer composition which bundles all the necessary applications and modules.
  • Full refactoring of the search engine and interface using django-haystack and ElasticSearch with new faceting and smart filtering features
  • Add an automatic EPUB3 ebook exporter for corpus and collections embedding metadata, image and audio materials.
  • More inline forms and functional buttons
  • Install new useful tools and modules like Conda, Jupyter notebook and many others
  • Add resource sharing links
  • Switch to Affero GPL licence
  • Upgrade of every dependency bundle in the composition
  • Many, many bugfixes
  • Thanks to all partners for this huge release!

1.5.1

  • Fix geo-navigator lists and pagination
  • Fix item analyses cleanup after file edit
  • Fix performance and keywords copy during item copy
  • Add various annotation mime types (ELAN, Trancriber, Sonic Visualizer)
  • Add arabic translations through Telemeta-locales (thanks to @AnasGhrab)
  • Fix arabic and chinese codes in sandbox
  • Better locale / pages management
  • A better management of RTL for arabic page style

More changes.

Examples

Demo

http://demo.telemeta.org

  • login: admin
  • password: admin

Get it

Thanks to Docker, Telemeta is now fully available as a docker composition ready to work. The docker based composition bundles some powerfull applications and modern frameworks out-of-the-box like: Python, Conda, Numpy, Jupyter, Gstreamer, Django, Celery, Haystack, ElasticSearch, MySQL, Redis, uWSGI, Nginx and many more.

First, install Git, Docker and docker-compose

Then clone Telemeta:

git clone --recursive https://github.com/Parisson/Telemeta.git
cd Telemeta

Start it up

To start the application ONLY for testing or developing purposes:

docker-compose up

Then browse the app at http://localhost:8000/ (replacing 'localhost' by the IP given by the docker terminal on OSX or Windows)

Note that the service will automatically be reloaded when any code of the app is modified.

For a production environment setup, first read / edit env/prod.env, then:

docker-compose -f docker-compose.yml -f env/prod.yml up

This will provide the uwsgi port 8000 for which you should setup an exernal Nginx server using uwsgi_pass.

You can also use the nginx container like this:

docker-compose -f docker-compose.yml -f env/prod.yml -f env/nginx.yml up

Be CAREFULL in production:

  • The database is deleted when using docker-compose rm
  • Define your own passwords and secret keys in env/*.env files
  • Use a cron rule and the backup script to save your work periodically

Daemonize

Linux only

On a production server, Telemeta can be automatically started as a daemon so that it is started during booting. Just execute the install script:

sudo ./install.py

Backup / Restore

To backup the database in the data/backup/ folder, run this in another terminal (or a Docker Quickstart Terminal):

docker-compose run db /srv/bin/sql/backup_db.sh

To restore the last backuped database from the data/backup/ folder, run this in another terminal (or a Docker Quickstart Terminal):

docker-compose run db /srv/bin/sql/restore_db.sh

If the app is broken after a restore script, restart the composition with:

docker-compose restart

API / Documentation

Development

You are welcome to participate to the development by forking the Telemeta project on GitHub, using it as if it were the original and submitting your changes through a Pull Request on the dev branch ONLY.

Bugs, issues, ideas

If you find some bugs or have good ideas for enhancement, please leave a issue on GitHub with the right label or tweet it @telemeta.

And remember: even if Telemeta suits you, please give us some feedback. We need your support!

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Sponsors and partners

  • CNRS : Centre National de la Recherche Scientifique (French Natianal Research and Scientific Center)
  • MCC : Ministère de la Culture et de la Communication (the french Ministry of the Culture and Communication)
  • ANR : Agence Nationale de la Recherche (French Research Agency)
  • UPMC : University Pierre et Marie Curie (Paris 6, Sorbonne Universités, France)
  • CREM : Centre de Recherche en Ethnomusicologie (Ethnomusicology Research Center, Paris, France)
  • LAM : Equipe Lutherie, Acoustique et Musique de l'IJLRDA (Paris, France)
  • IJLRDA : Institut Jean le Rond d'Alembert (Paris, France)
  • Parisson : Open development agency for audio science and arts (Paris, France)
  • MNHN : Museum National d'Histoire Naturelle (National Museum of Biology, Paris, France)
  • U-Paris10 : University Paris 10 Ouest Nanterre (Nanterre, France)
  • MdH : Musée de l'Homme (Paris, France)
  • IRIT : Institut de Recherche en Informatique de Toulouse (Toulouse, France)
  • LIMSI : Laboratoire d'Informatique pour la Mécanique et les Sciences de l'Ingénieur (Orsay, France)
  • LABRI : Laboratoire Bordelais de Recherche en Informatique (Bordeaux, France)
  • C4DM : Centre for Digital Music at Queen Mary University (London, UK)
  • HumaNum : TGIR des humanités numériques (Paris, France)
  • CMAM : Centre des Musiques Arabes et Méditerranéennes (Tunis, Tunisia)
  • IRCAM : Institut de Recherche et de Coordination Acoustique / Musique (Paris, France)
  • UNAM : Universidad Nacional Autónoma de México (México)

Related research projects

  • DIADEMS : Description, Indexation, Access to Sound and Ethnomusicological Documents, funded by the French Research Agency (ANR CONTINT 2012), involving IRIT, CREM, LAM, LABRI, LIMSI, MNHN, Parisson
  • TimeSide-DIADEMS : a set of Timeside plugins for hich level music analysis developed during the DIADEMS project
  • SoundSoftware : Sustainable Software of Audio and Music Research
  • DaCaRyH : Le rythme calypso à travers l’histoire : une approche en sciences des données (AHRC “Care for the Future” et le Labex-Passé_Présent "Les passés dans le présent")
  • Kamoulox : Démixage en ligne de larges archives sonores (ANR Jeune Chercheur 2015)
  • WASABI : Web Audio Semantic Aggregated in the Browser for Indexation (ANR 2016, currently being submitted)