Frage

Ich versuche, ein paar Videos auf Sync ich von einem bestimmten Benutzer von Youtube zu einer Datenbanktabelle von Video Ids abgerufen habe.

Das ist, weil YouTube das Hinzufügen von Meta-Informationen zu einem Video nicht gestattet. Daher habe ich eine Video-Tabelle auf meinem Server erstellt und möchte videoids synchronisieren.

d. PHP / MySQL-app <-> Youtube

Die Datenstruktur für YouTube-Videos ist wie folgt:

foreach ($feed as $entry) {
  print "<p>";
  print $entry->getVideoId();
  print "</p>";
}

für meine db ist dies:

$rs->MoveFirst();
while (!$rs->EOF) {
  print "<p>";
  print $rs->fields['yt_id'];
  print "</p>";
  $rs->MoveNext();
}

Wissen Sie, wie kann ich diese Daten, so dass synchronisieren:

  1. Jedes Mal, wenn Benutzer ein neues Video auf YouTube hochgeladen wurde, kann ich eine Sync-Funktion aufrufen, die die neuesten Video-und fügen Sie ihn in die MySQL-Datenbank wird abrufen?
  2. Wenn jedoch der Benutzer ein Video auf youtube löscht, gibt es keine löschen?
War es hilfreich?

Lösung

könnten Sie array_diff() die IDs zu vergleichen, sobald Sie haben holte sie von den beiden Standorten, zum Beispiel:

//build array of video IDs in YouTube
$arYT = array();
foreach ($feed as $entry) {
    $arYT[] = $entry->getVideoId();
}

//build array of video IDs in local DB
$arDB = array();
$rs->MoveFirst();
while (!$rs->EOF) {
  $arDB[] = $rs->fields['yt_id'];
  $rs->MoveNext();
}

//to download, we want IDs which are in YouTube but not in the local Db
$idsToDownload = array_diff($arYT, $arDB);

//to delete, we want IDs which are in the local DB but not in YouTube
$idsToDelete = array_diff($arDB, $arYT);

Und dann kann man etwas tun:

//download new videos
foreach ($idsToDownload as $id) {
   //get video info for video $id and put into local db    
}

//delete deleted videos
foreach ($idsToDelete as $id) {
    //delete $id from local DB
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top