xSpin : un créateur de spin polymorphe

L’annonce de la sortie de xSpin, développé par Sylvain Deauré, a été faite fin Mai à la communauté de Code-SEO. Son développement a débuté bien avant et quelques personnes se sont ralliées à Sylvain (comme moi) pour améliorer l’outil et déceler les petites coquilles. Il était donc jusque là privé. Depuis quelques jours, il est ouvert au public.

Pourquoi polymorphe ? Parce qu’il va permettre de varier au maximum la forme de vos tirages. L’ère des masterspins construits avec des successions de synonymes fait partie du passé. Je vous invite d’ailleurs à lire les articles suivant pour vous en convaincre :

Le tarif est de 25 euros HT / mois. Dès le lancement public du service, le tarif augmente. Une formule ’24h’ permettra aux utilisateurs très occasionnels d’accéder à l’outil à tarif réduit.

Laurent Bourrelly a eu la primeur de révéler l’existence de l’outil au monde du SEO dans son Podcast 8 : Présentation de xSpin. Je vais passer en revu quelques points qui mérites d’être détaillé pour cerner toutes les possibilités qui s’offrent à vous. C’est parti !

xSpin, c’est quoi ?

Pour ceux qui ne le connaissent pas encore, c’est un outil qui va vous permettre d’améliorer considérablement vos masterspins, dans le fond et la forme. Il n’est à la base pas fait pour spinner automatiquement vos textes (bien qu’il le peut avec Spinner Chief) mais plutôt pour varier la structure générale de vos tirages (texte de sortie d’un masterspin).

Afin de générer votre masterspin, il faut agencer des modules et les lier entre eux avec des tuyaux (script à la Yahoo Pipes, basé sur le framework YUI3). Vous avez le choix parmi des modules standards, des modules publics (un module public est en général construit à partir de plusieurs modules standards), des modules ‘extra’ (modules qui ne seront pas publics par défaut. En gros, des modules « pros » que vous pouvez acheter en option, utiliser, mais pas éditer) et vos modules ‘perso’.

C’est un outil en ligne uniquement (pour l’instant), avec donc pas mal de JavaScript. Cela nécessite notamment de faire un CTRL+R / CTRL+F5 lors des mises à jours sous peine d’avoir des bugs.

 

Type de message que vous pouvez avoir lors des mises à jours :

Anatomie d’un module

Les modules standards ou publics fonctionnent de la même façon mais peu de modules standards ont un paramètre en entrée (1) qui peut provenir d’un autre module. C’est souvent le cas des modules perso ou publics par contre. Cela dépends si vous utilisez des modules ayant un contenu variable ou statique (cf module « sourceString »). Si le point n’est pas présent, c’est que les données du modules doivent être paramétrées directement dans celui-ci. Notez que ce point peut également être placé en haut du module, sur la barre bleue. C’est le cas des modules ‘intermédiaires’ comme la « Permutation », « RemplacerPar » ou « Optionnel ».

Les points en (2) permettent d’y lier un module standard jaune pour appliquer un effet défini par celui-ci au texte passant par le module. Dans la version 1.2.6 en ligne actuellement, il y a 4 modules jaunes : « autoSpin », « Affixe », « Formatte » et « Traduire ».

Finalement, la sortie du module (3) transmet le résultat des effets produits par le module au module suivant.

Anatomie de la zone de travail

Le petit gif ci-dessus illustre la façon dont vous allez utiliser xSpin. La partie verte est votre bibliothèque de modules dont nous avons parlé précédemment. La partie supérieure jaune contient les boutons pour créer, charger, supprimer et sauvegarder vos modules. Les 2 derniers boutons sur la droite permettent soit de générer un tirage pour avoir un visuel de ce que le masterspin peut donner, soit de générer le masterspin complet. Ce masterspin s’affichera dans la partie rouge (en bas). Cette zone permet également de régler les paramètres de votre ‘wiring’ (titre, description, catégorie).

Quelques modules

Je vais passer sur quelques modules qui nécessitent une mise au clair et qui sont parmi les moins faciles à utiliser. Après, si vous avez d’autres questions, il y a toujours le forum d’xSpin et la petite mais grandissante communauté de xSpinneurs qui est là pour vous aider.

SourceString

seo spinningCe module est probablement celui que vous utiliserez le plus souvent. Il permet de manipuler vos textes.
Le champ ‘label’ est simplement le nom que vous allez lui donner. Il en sera de même avec le module Sortie.
Vous avez également un champ ‘texte’ dans lequel vous pouvez y coller soit un texte (qu’il soit spinné ou non), soit une liste de mots.
Admettons que vous voulez travailler votre longue traine. Google Keyword Tool va donner un liste de mots clé dans un fichier Excel. Collez vos mots clés ici et modifiez l’option nl2spin à ‘Yes’. Cette option permet de définir chaque ligne comme faisant partie du spin (new line to spin). L’exemple donnera le spin : {test|essai}.
Vous avez également une option ‘constante’. Définie à ‘no’, cette option va vous obliger à définir le contenu du texte lorsque vous utiliserez ce module dans un ensemble plus complexe (module perso ou public).

 

DataSource

Ce module permet d’afficher un nombre défini d’informations venant de bases de données. Ces bases de données font partie d’xSpin. Vous ne pouvez pas interroger des bases externes. Il existe pour l’instant 2 bases fonctionnelles : fakenames et ville. Vous avez cependant la possibilité d’appeler des bases préalablement importées dans xSpin à ce niveau (je reviens sur ce point plus bas).

Un certain nombre de paramètres sont nécessaire pour faire fonctionner le module. Il faut au minimum définir la clause where à 1, la source ainsi que le ou les champs qui vous intéressent.

Attention, il y a des bases SQL (préfixées avec SQL) et des bases SQLite. La syntaxe des Order By peut varier par exemple : rand() pour du SQL et random() pour du SQLite.

Voici l’architecture des 2 tables fonctionnelles afin de vous aider à utiliser le module :

Fakenames

CREATE TABLE IF NOT EXISTS `fakenames` (
`number` int(11) NOT NULL AUTO_INCREMENT,
`gender` varchar(6) NOT NULL,
`givenname` varchar(20) NOT NULL,
`middleinitial` varchar(1) NOT NULL,
`surname` varchar(23) NOT NULL,
`streetaddress` varchar(100) NOT NULL,
`city` varchar(100) NOT NULL,
`state` varchar(22) NOT NULL,
`zipcode` varchar(15) NOT NULL,
`country` varchar(2) NOT NULL,
`emailaddress` varchar(100) NOT NULL,
`password` varchar(25) NOT NULL,
`telephonenumber` tinytext NOT NULL,
`maidenname` varchar(20) NOT NULL,
`birthday` varchar(10) NOT NULL,
`cctype` varchar(10) NOT NULL,
`ccnumber` varchar(16) NOT NULL,
`CVV2` varchar(3) NOT NULL,
`ccexpires` varchar(10) NOT NULL,
`nationalid` varchar(15) NOT NULL,
`upstracking` varchar(24) NOT NULL,
`occupation` varchar(70) NOT NULL,
`company` varchar(70) NOT NULL,
`domain` varchar(70) NOT NULL,
`bloodtype` varchar(3) NOT NULL,
`pounds` varchar(5) NOT NULL,
`kilograms` varchar(5) NOT NULL,
`feetinches` varchar(6) NOT NULL,
`centimeters` varchar(3) NOT NULL,
`guid` varchar(36) NOT NULL,
`latitude` float(10,6) NOT NULL,
`longitude` float(10,6) NOT NULL,
PRIMARY KEY (`number`)
)

Ville

CREATE TABLE IF NOT EXISTS `Ville` (
`nom` varchar(255) NOT NULL DEFAULT '',
`cp` varchar(255) NOT NULL DEFAULT '',
`latitude` float(7,6) NOT NULL DEFAULT '0.000000',
`longitude` float(7,6) NOT NULL DEFAULT '0.000000',
`eloignement` varchar(255) NOT NULL DEFAULT '',
`url` varchar(255) NOT NULL DEFAULT '',
`numdep` varchar(3) NOT NULL,
`nomdep` varchar(255) NOT NULL,
`coderegion` varchar(4) NOT NULL,
`nomregion` varchar(100) NOT NULL,
KEY `cp` (`cp`),
KEY `nom` (`nom`),
KEY `numdep` (`numdep`),
KEY `coderegion` (`coderegion`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Affixe

Le module ‘Affixe’ permet d’ajouter une chaîne avant et après un autre module. Il se configure comme le schéma ci-dessous. C’est un module jaune : son point d’entrée est donc sur la droite des autres modules.

Notez que l’affixe s’applique à chaque élément d’un sourceString en mode nl2spin.
L’exemple vous donnera donc : {<p>test</p>|<p>essai</p>}

Publipostage

Le module prend un texte « à trous » en entrée. Il peut s’agir d’une SourceString simple comme de n’importe quelle sortie de module, aussi complexe soit-elle.

Les tags à insérer sont toujours de la forme %nom_du_champ% (fonction de la base utilisée).

On peut indiquer une base SQL publique ou une base SQLite privée et indiquer les champs à extraire dans le select.

Attention à la clause « order by » : rand() pour du mysql, random() pour sqlite. Indiquer le nombre de lignes de la base à extraire.

Variantes par item permet « d’aplatir » plus ou moins le masterspin d’entrée, pour ne pas exploser la taille de la sortie.

Le module est un peu complexe mais vous trouverez plus de détails sur cette page (il faut être client).

 

Les autres modules sont relativement facile à prendre en main et ne nécessite pas vraiment d’explications. Par ailleurs, il existe une zone spécifique dans le forum destinée à la présentation de tous les modules.

 

Les bases de données personnelles

Vous avez accès à une database sqlite grâce à un lien situé en haut à droite d’xSpin. Vous pouvez y créer des tables et y importer des données (import sql et csv). Ces données sont isolées des autres, elles ne sont pas publiques. Le module « DataSource » permet donc de sélectionner soit une des tables SQL publiques, soit une base sqlite perso. Si on ajoute une table perso, il faut recharger xSpin pour la voir apparaitre.

 

Coloration syntaxique

La version 1.2.5 voit naître la coloration syntaxique des textes des sourceString. Un double clic ou un CTRL+clic dans la zone de texte d’un sourceString vous permet d’avoir une vision plus large de vos spins afin de le retravailler :

Aller plus loin avec l’API

Une fois connecté au forum, vous pouvez récupérer votre clé d’API via un lien.

La clé vous permet d’appeler en POST ou en GET le module de votre choix pour en récupérer un tirage ou le masterspin complet.

Voici un exemple d’appel avec paramètres :

http://xspin.it/API/get.php?user=LIJE&key=KEY&project=50%20Villes%20Fr&action=gettext&format=html

Le code PHP :

<!DOCTYPE html>
<html dir="ltr" lang="fr-FR">
<head profile="http://gmpg.org/xfn/11">
    <meta charset="UTF-8" />
</head>
<body> <?php $ch = curl_init();
        $timeout = 5;
        $url = "http://xspin.it/API/get.php?user=LIJE&key=KEY&project=50%20Villes%20Fr&action=gettext&format=html";
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $data = curl_exec($ch);
        curl_close($ch);
        echo $data; ?> </body>
</html>

Notez que pour les modules qui comportent des espaces, il faut les remplacer par %20 comme dans mon exemple. Le module est en fait : 50 Villes Fr. Vous serez peut être aussi amené à utiliser les fonctions PHP : utf8_decode ou htmlentities sur vos serveurs.

Les paramètres :

  • user: votre nom d’utilisateur xSpin (pseudo du forum)
  • key : votre clé API, cf message ci-dessus
  • project : le nom du projet concerné
  • action : gettext (renvoie un tirage) ou getxspin (renvoie le masterspin)
  • format : le format de sortie (en interne, je préconise d’utiliser du html pour la construction du spin). Il est optionnel. Par défaut : html. Fonctionnels : wiki ou MediaWiki pour la syntaxe type wikipédia.

Avez-vous déjà utilisé xSpin ? Qu’en pensez-vous ?

Greatcontent : plateforme de rédaction de contenu
Affiliation Amazon et contenu dupliqué : la parade

16 Comments on “xSpin : un créateur de spin polymorphe”

  1. Du bon boulot pour les non-programmeurs, ainsi que pour les autres qui peuvent taper l’API pour automatiser tout ça. Vivement la version 24 heures pour y jeter un œil !

  2. Très bon compte rendu des possibilités offerte par xSpin.
    La limite de l’outil est vraiment l’imagination du spinner. Les modules vont permettre une évolution sans fin avec toujours plus de possiblité.
    La création de module perso permet vraiment de pouvoir rentabiliser sont temps de travail. Je pense que la communuauté d’xSpin gagnera énormement avec ces modules si chacun y met du sien pour partager ces créations.
    Vraiment un excellent outil qui place le spin à un tout autre niveau ;)

  3. Et bien ça m’a l’air d’être un gros truc ça…

    Bien hâte de pouvoir tester une version 24h pour me faire une idée, le masterspin m’intéresse bien mais j’ai jamais réussit à m’y retrouver niveau temps encore.

  4. Merci pour la mention :-)
    L’outil est vraiment génial aujourd’hui, mais c’est clair qu’il va encore monter en puissance. Vu comme Sylvain est parti, je n’ose même pas imaginer où il va nous amener.
    Belle revue en tout cas.

  5. Ça fait déjà plus d’un mois que j’ai souscrit et je n’ai pas eu une minute pour m’y pencher.

    Je pose la question à ceux qui ont utilisé l’outil: son fonctionnement vous parait-il accessible à une personne qui a, à la base, des prédispositions plutôt littéraires ?

    1. Comme le dit si bien Sylvain : « Coté simplicité, mon fils de 9 ans « joue » avec… ».
      Il y a certes quelques astuces à connaitre mais sinon, n’importe qui peut l’utiliser.

  6. Bonjour Jérôme

    Oulà ! Tout ça m’a l’air bien compliqué, j’avoue avoir déjà spinné certain de mes textes, mais que c’est vite lourd à faire, du coup, merci beaucoup pour ce tutorial !

    Je le fais tourner à mes collègues !

    Marie

  7. Merci de la petite présentation,
    Vraiment très facile d’utilisation pour l’avoir utilisé moi même, j’ai très vite convertit plusieurs collègues !

  8. Merci pour ce tuto, l’outil m’intéresse et j’aimerai beaucoup le tester sur 24h.
    J’ai besoin d’un outil simple pour spinner des descriptions pour mes soumissions aux annuaires, je travaille aujourd’hui avec des outils gratuits un peu trop simpliste et pas franchement ergonomique, je serai heureux d’en parler après l’avoir testé.

  9. Salut,
    Je n’ai encore jamais sauté le pas au niveau du spin, mais là avec cet outil, ça commence à me titiller un peu plus. Je pense que je vais attendre cette version test de 24h pour voir comment ça se passe et si je m’en sort et peut être me lancer dans la foulée.

  10. Bonjour,
    Existe t-il des vidéos explicatives de prise en main pour les débutants?
    Quand on a pas l’habitude… c’est un peu compliqué.

      1. Super, merci pour les liens des vidéos! C’est vrai que c’est plus simple avec, moi je ne suis pas très fortiche avec tout ça, c’est donc appréciable.

  11. Je suis certain que d’autres propriétaires de site Web devraient prendre ce site pour modèle, car son look bien épuré et le contenu est vraiment génial, sympathique et riche. si vous etes un expert dans cette domaine !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *