Recherche avancée

Médias (0)

Mot : - Tags -/organisation

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (80)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

Sur d’autres sites (11810)

  • FFMpeg Text Animation

    26 mai 2019, par Alexia1990

    How to add text with animation on video in ffmpeg ?
    Now I am trying to add video management function on android app.
    If you have a experiences on it, please help me.

  • Track API calls in Node.js with Piwik

    25 juin 2014, par Frederic Hemberger — Community, API, Node.js

    When using Piwik for analytics, sometimes you don’t want to track only your website’s visitors. Especially as modern web services usually offer RESTful APIs, why not use Piwik to track those requests as well ? It really gives you a more accurate view on how users interact with your services : In which ways do your clients use your APIs compared to your website ? Which of your services are used the most ? And what kind of tools are consuming your API ?

    If you’re using Node.js as your application platform, you can use piwik-tracker. It’s a lightweight wrapper for Piwik’s own Tracking HTTP API, which helps you tracking your requests.

    First, start with installing piwik-tracker as a dependency for your project :

    npm install piwik-tracker --save

    Then create a new tracking instance with your Piwik URL and the site ID of the project you want to track. As Piwik requires a fully qualified URL for analytics, add it in front of the actual request URL.

    var PiwikTracker = require('piwik-tracker');

    // Initialize with your site ID and Piwik URL
    var piwik = new PiwikTracker(1, 'http://mywebsite.com/piwik.php');

    // Piwik works with absolute URLs, so you have to provide protocol and hostname
    var baseUrl = 'http://example.com';

    // Track a request URL:
    piwik.track(baseUrl + req.url);

    Of cause you can do more than only tracking simple URLs : All parameters offered by Piwik’s Tracking HTTP API Reference are supported, this also includes custom variables. During Piwik API calls, those are referenced as JSON string, so for better readability, you should use JSON.stringify({}) instead of manual encoding.

    piwik.track({
       // The full request URL
       url: baseUrl + req.url,

       // This will be shown as title in your Piwik backend
       action_name: 'API call',

       // User agent and language settings of the client
       ua: req.header('User-Agent'),
       lang: req.header('Accept-Language'),

       // Custom request variables
       cvar: JSON.stringify({
         '1': ['API version', 'v1'],
         '2': ['HTTP method', req.method]
       })
    });

    As you can see, you can pass along arbitrary fields of a Node.js request object like HTTP header fields, status code or request method (GET, POST, PUT, etc.) as well. That should already cover most of your needs.

    But so far, all requests have been tracked with the IP/hostname of your Node.js application. If you also want the API user’s IP to show up in your analytics data, you have to override Piwik’s default setting, which requires your secret Piwik token :

    function getRemoteAddr(req) {
       if (req.ip) return req.ip;
       if (req._remoteAddress) return req._remoteAddress;
       var sock = req.socket;
       if (sock.socket) return sock.socket.remoteAddress;
       return sock.remoteAddress;
    }

    piwik.track({
       // …
       token_auth: '<YOUR SECRET API TOKEN>',
       cip: getRemoteAddr(req)
    });

    As we have now collected all the values that we wanted to track, we’re basically done. But if you’re using Express or restify for your backend, we can still go one step further and put all of this together into a custom middleware, which makes tracking requests even easier.

    First we start off with the basic code of our new middleware and save it as lib/express-piwik-tracker.js :

    // ./lib/express-piwik-tracker.js
    var PiwikTracker = require('piwik-tracker');

    function getRemoteAddr(req) {
       if (req.ip) return req.ip;
       if (req._remoteAddress) return req._remoteAddress;
       var sock = req.socket;
       if (sock.socket) return sock.socket.remoteAddress;
       return sock.remoteAddress;
    }

    exports = module.exports = function analytics(options) {
       var piwik = new PiwikTracker(options.siteId, options.piwikUrl);

       return function track(req, res, next) {
           piwik.track({
               url: options.baseUrl + req.url,
               action_name: 'API call',
               ua: req.header('User-Agent'),
               lang: req.header('Accept-Language'),
               cvar: JSON.stringify({
                 '1': ['API version', 'v1'],
                 '2': ['HTTP method', req.method]
               }),
               token_auth: options.piwikToken,
               cip: getRemoteAddr(req)

           });
           next();
       }
    }

    Now to use it in our application, we initialize it in our main app.js file :

    // app.js
    var express      = require('express'),
       piwikTracker = require('./lib/express-piwik-tracker.js'),
       app          = express();

    // This tracks ALL requests to your Express application
    app.use(piwikTracker({
       siteId    : 1,
       piwikUrl  : 'http://mywebsite.com/piwik.php',
       baseUrl   : 'http://example.com',
       piwikToken: '<YOUR SECRET API TOKEN>'
    }));

    This will now track each request going to every URL of your API. If you want to limit tracking to a certain path, you can also attach it to a single route instead :

    var tracker = piwikTracker({
       siteId    : 1,
       piwikUrl  : 'http://mywebsite.com/piwik.php',
       baseUrl   : 'http://example.com',
       piwikToken: '<YOUR SECRET API TOKEN>'
    });

    router.get('/only/track/me', tracker, function(req, res) {
       // Your code that handles the route and responds to the request
    });

    And that’s everything you need to track your API users alongside your regular website users.

  • Track API calls in Node.js with Piwik

    25 juin 2014, par Frederic Hemberger — Community, API, Node.js

    When using Piwik for analytics, sometimes you don’t want to track only your website’s visitors. Especially as modern web services usually offer RESTful APIs, why not use Piwik to track those requests as well ? It really gives you a more accurate view on how users interact with your services : In which ways do your clients use your APIs compared to your website ? Which of your services are used the most ? And what kind of tools are consuming your API ?

    If you’re using Node.js as your application platform, you can use piwik-tracker. It’s a lightweight wrapper for Piwik’s own Tracking HTTP API, which helps you tracking your requests.

    First, start with installing piwik-tracker as a dependency for your project :

    npm install piwik-tracker --save

    Then create a new tracking instance with your Piwik URL and the site ID of the project you want to track. As Piwik requires a fully qualified URL for analytics, add it in front of the actual request URL.

    var PiwikTracker = require('piwik-tracker');

    // Initialize with your site ID and Piwik URL
    var piwik = new PiwikTracker(1, 'http://mywebsite.com/piwik.php');

    // Piwik works with absolute URLs, so you have to provide protocol and hostname
    var baseUrl = 'http://example.com';

    // Track a request URL:
    piwik.track(baseUrl + req.url);

    Of cause you can do more than only tracking simple URLs : All parameters offered by Piwik’s Tracking HTTP API Reference are supported, this also includes custom variables. During Piwik API calls, those are referenced as JSON string, so for better readability, you should use JSON.stringify({}) instead of manual encoding.

    piwik.track({
       // The full request URL
       url: baseUrl + req.url,

       // This will be shown as title in your Piwik backend
       action_name: 'API call',

       // User agent and language settings of the client
       ua: req.header('User-Agent'),
       lang: req.header('Accept-Language'),

       // Custom request variables
       cvar: JSON.stringify({
         '1': ['API version', 'v1'],
         '2': ['HTTP method', req.method]
       })
    });

    As you can see, you can pass along arbitrary fields of a Node.js request object like HTTP header fields, status code or request method (GET, POST, PUT, etc.) as well. That should already cover most of your needs.

    But so far, all requests have been tracked with the IP/hostname of your Node.js application. If you also want the API user’s IP to show up in your analytics data, you have to override Piwik’s default setting, which requires your secret Piwik token :

    function getRemoteAddr(req) {
       if (req.ip) return req.ip;
       if (req._remoteAddress) return req._remoteAddress;
       var sock = req.socket;
       if (sock.socket) return sock.socket.remoteAddress;
       return sock.remoteAddress;
    }

    piwik.track({
       // …
       token_auth: '<YOUR SECRET API TOKEN>',
       cip: getRemoteAddr(req)
    });

    As we have now collected all the values that we wanted to track, we’re basically done. But if you’re using Express or restify for your backend, we can still go one step further and put all of this together into a custom middleware, which makes tracking requests even easier.

    First we start off with the basic code of our new middleware and save it as lib/express-piwik-tracker.js :

    // ./lib/express-piwik-tracker.js
    var PiwikTracker = require('piwik-tracker');

    function getRemoteAddr(req) {
       if (req.ip) return req.ip;
       if (req._remoteAddress) return req._remoteAddress;
       var sock = req.socket;
       if (sock.socket) return sock.socket.remoteAddress;
       return sock.remoteAddress;
    }

    exports = module.exports = function analytics(options) {
       var piwik = new PiwikTracker(options.siteId, options.piwikUrl);

       return function track(req, res, next) {
           piwik.track({
               url: options.baseUrl + req.url,
               action_name: 'API call',
               ua: req.header('User-Agent'),
               lang: req.header('Accept-Language'),
               cvar: JSON.stringify({
                 '1': ['API version', 'v1'],
                 '2': ['HTTP method', req.method]
               }),
               token_auth: options.piwikToken,
               cip: getRemoteAddr(req)

           });
           next();
       }
    }

    Now to use it in our application, we initialize it in our main app.js file :

    // app.js
    var express      = require('express'),
       piwikTracker = require('./lib/express-piwik-tracker.js'),
       app          = express();

    // This tracks ALL requests to your Express application
    app.use(piwikTracker({
       siteId    : 1,
       piwikUrl  : 'http://mywebsite.com/piwik.php',
       baseUrl   : 'http://example.com',
       piwikToken: '<YOUR SECRET API TOKEN>'
    }));

    This will now track each request going to every URL of your API. If you want to limit tracking to a certain path, you can also attach it to a single route instead :

    var tracker = piwikTracker({
       siteId    : 1,
       piwikUrl  : 'http://mywebsite.com/piwik.php',
       baseUrl   : 'http://example.com',
       piwikToken: '<YOUR SECRET API TOKEN>'
    });

    router.get('/only/track/me', tracker, function(req, res) {
       // Your code that handles the route and responds to the request
    });

    And that’s everything you need to track your API users alongside your regular website users.