diff --git a/inc/renseigner_document.php b/inc/renseigner_document.php
index f1d72c5e548728a826bf4169a2d377fb25c21ff3..578ec4eb0d3f42d7e01d6b9ddd0cb93628c01bcd 100644
--- a/inc/renseigner_document.php
+++ b/inc/renseigner_document.php
@@ -28,20 +28,33 @@ function renseigner_source_distante($source){
 		return $infos[$source];
 	
 	include_spip('inc/distant');
-	if ($a = recuperer_infos_distantes($source)) {
-
+	// on passe la source dans le pipeline, le premier plugin
+	// qui est capable de renseigner complete
+	// et enleve l'entree source
+	// ex : oembed
+	$a = pipeline('renseigner_document_distant',array('source'=>$source));
+	// si la source est encore la, en revenir a la
+	// methode traditionnelle : chargement de l'url puis analyse
+	if (!isset($a['fichier'])){
+		if (!$a = recuperer_infos_distantes($a['source'])) {
+			return _T('medias:erreur_chemin_distant',array('nom'=>$source));
+		}
 		# NB: dans les bonnes conditions (fichier autorise et pas trop gros)
 		# $a['fichier'] est une copie locale du fichier
 		unset($a['body']);
-
-		$a['distant'] = 'oui';
-		$a['mode'] = 'document';
-		$a['fichier'] = set_spip_doc($source);
-		$infos[$source] = $a;
-		return $infos[$source];
 	}
 
-	return _T('medias:erreur_chemin_distant',array('nom'=>$source));
+	// completer les entrees manquantes
+	$infos[$source] = array_merge(
+		array(
+		'distant'=>'oui',
+		'mode'=>'document',
+		'fichier'=>set_spip_doc($source),
+		),
+		$a);
+
+	// stocker pour la seconde demande
+	return $infos[$source];
 }
 
 /**
diff --git a/plugin.xml b/plugin.xml
index 29289184955d6b8ab745d3dde31204b3228455dc..8b598adca05573a8d87bdf946eff548e5e1c24ee 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -61,6 +61,7 @@
 	</pipeline>
 	<pipeline><nom>document_desc_actions</nom><action></action></pipeline>
 	<pipeline><nom>editer_document_actions</nom><action></action></pipeline>
+	<pipeline><nom>renseigner_document_distant</nom><action></action></pipeline>
 
 	<bouton id='documents' parent='bando_edition'>
 		<titre>medias:documents</titre>