Bonjour. ;)
Depuis un petit je cherche à comprendre comment récupérer le statut d'un live sur Dailymotion
J'ai d'abord tester les requêtes via l'API explorer
Ensuite j'ai crée une petite une petite fonction pour récupérer les données :
function getLiveData() { // Récuperation des données
        /* Gestion du cache */
        $cache = LIBRARY . "cache/livestream.tmp";
        if (time() - filemtime($cache) > 300) { // On vérifie si le cache date de plus de 2min
            /* Dailymotion */
            $force_cache = false;
            try {
                $json_daily = json_decode(file_get_contents("https://api.dailymotion.com/user/exitedprotek/videos?fields=broadcasting,title&filters=all-live&sort=recent"), true);
            } catch (Exception $e) {
                $force_cache = true;
            }
            // On crée un tableau avec le contenu des 2 tableaux JSON
            if ($force_cache) {
                $data = unserialize(file_get_contents($cache));
            }
            else {
                $data = $json_daily;
                file_put_contents($cache, serialize($data));
            }
        }
        else { // Si le cache est plus récent on récupère le cache
            $data = unserialize(file_get_contents($cache));
        }
        return $data;
    }Le problème c'est que l'API ne retourne que "false" pour le champs "broadcasting", j'ai tout essayé mais c'est sans espoir :(
Exemple:
$data = getLiveData();
    echo $data'list'][0]'broadcasting'];Il me retourne"false" tout le temps :/
EDIT:
Voici la solution ;)
public static function getLiveData($force_update = false) { // Récuperation des données
        /* Gestion du cache */
        $cache = LIBRARY . "cache/livestream.tmp";
        $api_request = "https://api.dailymotion.com/user/exitedprotek/videos?fields=embed_url,onair%2Ctitle%2Curl&search=en+live&sort=old";
        if (time() - filemtime($cache) > 120 || $force_update) { // On vérifie si le cache date de plus de 2min
            $force_cache = false;
            try {
                $json_response = json_decode(file_get_contents($api_request), true);
            } catch (Exception $e) {
                $json_response = unserialize(file_get_contents($cache));;
            }
            $data = $json_response;
            file_put_contents($cache, serialize($data));
        }
        else { // Si le cache est plus récent on récupère le cache
            $data = unserialize(file_get_contents($cache));
        }
        return $data;
    } 
  Je viens d'essayer avec cette url :
Et j'ai bien aucune vidéo, étant donné que tu ne streames pas actuellement.
J'ai essayé la même chose avec une chaîne qui a un live actif, j'ai bien seulement la vidéo du live qui sort.  
EDIT : Trouvé. Tu peux utiliser le champ "onair", c'est exactement ce qu'il te faut, et plus propre que d'utiliser le filtre "live" ;)
 
  Salut ProTeK,
Je viens de regarder rapidement l'API, et je crois que tu peux utiliser "filters=live" pour récupérer seulement les live en cours.
 
  Même en essayant le filtre il me sort la vidéo qui est considérée comme un "live" même si je ne stream pas actuellement :/
PS: J'ai vu qu'il existait un argument "event_video_live_onair" et "event_video_live_offair" qui me retourne un truc du genre "user.x1dyyih.video.live.onAir et "user.x1dyyih.video.live.offAir". Je ne sais pas si il y a un moyen de pouvoir "écouter" cet event
 
  Merci de ta réponse ;) tu viens de résoudre un problème qui me faisait ch*** depuis un bon moment ^^