Grilo

Core

||https://gitlab.gnome.org/GNOME/grilo/commits/master||https://gitlab.gnome.org/GNOME/grilo-plugins/commits/master

Overview

Grilo is a framework focused on making media discovery and browsing easy for application developers.

More precisely, Grilo provides:

  • A single, high-level API that abstracts the differences among various media content providers, allowing application developers to integrate content from various services and sources easily.
  • A collection of plugins for accessing content from various media providers. Developers can share efforts and code by writing plugins for the framework that are application agnostic.
  • A flexible API that allows plugin developers to write plugins of various kinds.

At this moment, Grilo has plugins supporting various services, including:

  • YouTube

  • Jamendo
  • Flickr
  • Vimeo
  • Apple trailers
  • Podcasts
  • UPnP/DLNA
  • Last.FM album art
  • ...and more

Grilo is free software, licensed under the LGPL.

Advantages

Less work on the application side
Plugin development happens in the framework, application developers can focus on making good user interfaces.
Code reuse
There are several media players which allow users to access media content from various services, but their solutions are application-specific and cannot be reused in other contexts or projects. Grilo provides a central point where all these developers can cooperate, share, reuse and improve one code base, instead of doing all the work from scratch on their own.
Quick learning curve

In order to support multiple media content providers developers must learn each particular API and also all the technologies and protocols involved (YouTube, Jamendo, Tracker, UPnP, etc.). This is a significant effort, that involves a lot of learning. Grilo makes all this a lot easier for application developers, you only have to learn one API, the framework API, and you will get access to all these services through plugins.

Scalability
There are a lot of media content providers available already, and more will come! There is a limit to what individual developers can support and maintain on their own. Enabling collaboration among all interested developers is the only way to make the situation scale to support more and more services in the future.

News

Future Ideas

Check out our Planned Features if you are interested in our ideas for the future of Grilo or if you want to contribute but are looking for a list of specific tasks.

Also, take a look at the minutes of BoF in GUADEC 2012.

Articles

Videos

Documentation

Online Grilo documentation can be found here.

Bugzilla

For reporting errors, enhancements or improvements, use:

https://gitlab.gnome.org/GNOME/grilo/issues

Download

Distros

The following distros provide packages for Grilo:

  • Debian
  • Fedora >15

  • Gentoo
  • Ubuntu

There is a PPA containing the packages for some Ubuntu distributions:

https://launchpad.net/~grilo-team/+archive/ppa

deb http://ppa.launchpad.net/grilo-team/ppa/ubuntu YOUR_UBUNTU_VERSION_HERE main
deb-src http://ppa.launchpad.net/grilo-team/ppa/ubuntu YOUR_UBUNTU_VERSION_HERE main

There is also a OpenSUSE Build Service (OBS) containing RPM packages for different distributions:

https://build.opensuse.org/project/show?project=home:jsuarezr:Grilo

If you are interested in packaging Grilo for your distro, let us know!

Release Tarballs

Latest release tarballs can be found at gnome.org.

https://download.gnome.org/sources/grilo/0.2/

https://download.gnome.org/sources/grilo-plugins/0.2/

To make new releases, follow these steps.

Git repository

The GNOME project is kindly hosting the repositories for Grilo:

http://git.gnome.org/browse/grilo

http://git.gnome.org/browse/grilo-plugins

You can check out the current development snapshot using

Grilo Framework

git clone git://git.gnome.org/grilo
git clone ssh://USERNAME@git.gnome.org/git/grilo

Grilo Plugins

git clone git://git.gnome.org/grilo-plugins
git clone ssh://USERNAME@git.gnome.org/git/grilo-plugins

There is also an updated copy in Gitorious and in Github.

Side projects

Grilo in Totem

As a proof of concept, Iago cooked a Totem plugin based on grilo. You can see a screencast (OGV) about it.

If you are interested in the code, this is the repo of the old version (will only work with very old versions of Grilo):

http://gitorious.org/itoral-totem-grilo

Another version of the plugin based on the GNOME MediaServerSpec was developed by Juan Suarez. You can find the code here:

http://gitorious.org/mediaserver2-plugins/totem-mediaserver2

At the moment we are working with the Totem developers to have a Grilo plugin for Totem integrated upstream. Progress is being tracked here:

https://bugzilla.gnome.org/show_bug.cgi?id=628648

Grilo feeding Rygel

grilo-mediaserver2, implements the D-BUS interface MediaServerSpec, for exposing media content over D-Bus. Rygel can consume content using this interface. Basically, it means that by using grilo-mediaserver2 and Rygel you can expose media content provided by Grilo on the UPnP realm.

If you are interested in the source code, check out:

http://git.gnome.org/browse/grilo-mediaserver2

git://git.gnome.org/grilo-mediaserver2
ssh://USERNAME@git.gnome.org/git/grilo-mediaserver2

Follow Grilo

Projects/Grilo (last edited 2019-08-21 21:21:53 by SuperUserCode)