Comment puis-je intégrer automatiquement un lecteur Bandcamp sur mon site ?

Si je publie une URL Bandcamp sur un forum Discourse, il récupère leur lecteur intégré. Comment puis-je faire de même avec mon propre site de musique ?

J’ai essayé de définir des balises og:video sans succès.

Merci !

Vous parlez de votre site qui n’est pas Discourse ?

Vous pouvez regarder dans le code source de Discourse et rechercher « onebox » ou peut-être « one_box ».

Ou peut-être consulter https://get.bandcamp.help/hc/en-us/articles/360013561254-How-do-I-create-a-Bandcamp-embedded-player-#:~:text=To%20create%20an%20embedded%20player,your%20merchandise%2C%20and%20so%20on. et utiliser cela pour développer du code pour votre site.

2 « J'aime »

Salut Jay,

J’ai un site web, un peu similaire à Bandcamp. J’ai créé des intégrations similaires au lien que tu as collé, donc tu peux ajouter un iframe à un autre site web et mon intégration apparaîtra.

Mais ce dont je parle, c’est d’une sorte de magie qui semble se produire lorsque tu postes simplement une URL Bandcamp, une intégration iframe complète apparaît. Est-ce quelque chose configuré sur le serveur Discourse ?

Voyons si cela fonctionne ici. Je vais coller une URL Bandcamp ci-dessous.

Oui ^ comme tu peux le voir, un lecteur de musique intégré fonctionnel est apparu. Je n’ai pas collé d’iframe ou de js, juste l’URL d’intégration que j’ai citée ci-dessus.

Est-ce quelque chose de spécial que Discourse sait faire pour des sites spécifiques ou y a-t-il des balises d’en-tête magiques que tu peux définir pour lui dire quelle URL d’intégration utiliser.

Comme Jay l’a souligné, vous devriez regarder le code source.

« Onebox » est la bibliothèque qui, en partie, convertit certaines URL en intégrations.

Avez-vous regardé :

Je pense que l’intention initiale était que ce code soit également utilisé sur des sites non-Discourse.

À cette fin, il existe une gem (maintenant non maintenue) que vous pourriez être en mesure d’exploiter (en supposant que votre site est RoR), peut-être seriez-vous intéressé à la maintenir ?

Un mot de prudence : le code sur Discourse aura positivement évolué depuis.

3 « J'aime »

Salut Robert,

Merci de m’avoir déterré ça. Oui, il y a du code spécifique pour cela dans Discourse. Ce n’est pas quelque chose que je dois faire sur mon site en tant que tel. Cela répond à cette partie. Donc, si je veux que mon site soit pris en charge de la même manière que Bandcamp sur Discourse (et potentiellement d’autres forums), je devrai demander ou contribuer au code pour que cela fonctionne aussi pour le mien.

Mon site n’est pas RoR mais je connais un peu le ruby, donc je pourrais peut-être contribuer.

J’ai aussi une 2ème question. En plus de coller l’URL, j’ai également tenté d’ajouter l’intégration avec la balise iframe. Cela fonctionne bien sur un site Web normal, mais le faire sur mon forum Discourse ne fonctionne pas. Une boîte carrée est apparue mais pas l’intégration à l’intérieur. J’ai supposé que c’était un problème d’autorisation, j’ai donc ajouté mon hôte aux iframes autorisées, mais cela ne fonctionne toujours pas.


OK, juste au moment où j’étais sur le point de prendre une capture d’écran pour montrer que cela ne fonctionnait pas, cela semble avoir commencé à fonctionner ! Je me demande donc s’il y a une sorte de délai dans le système pour appliquer les hôtes autorisés.

J’explorerai davantage. Merci pour votre aide jusqu’à présent.

1 « J'aime »

Ok, je viens de réaliser ce qui se passe. Lorsque vous modifiez les paramètres d’autorisation des iframes, cela n’affecte pas les publications existantes (du moins pas immédiatement). Il est possible qu’elles le fassent plus tard… je ne suis pas sûr.

Mais, lorsque vous créez une nouvelle publication ou modifiez une publication existante, les paramètres prennent effet à ce moment-là.

Donc, maintenant, mon intégration et mon URL fonctionnent tous les deux - cela signifie que je devrai simplement contacter les forums concernés et leur demander d’ajouter mon nom de domaine à la liste des hôtes autorisés et cela devrait fonctionner à partir de ce moment-là.

Merci

Salut :wave: :slight_smile:

Les anciennes publications doivent être re-cuites. Vous pouvez le faire manuellement en cliquant sur l’icône des trois points sous la publication, puis sur la clé à molette, puis sur Reconstruire le HTML.
image

Si vous avez beaucoup de publications à re-cuire, vous pourriez avoir besoin de la tâche rake pour re-cuire toutes les publications ou utiliser un script rails personnalisé pour en re-cuire seulement quelques-unes en utilisant les critères nécessaires.

Quelque chose comme ceci, je pense :

Post.where('raw LIKE ?', 'a specific URL').find_each do |p|
    p.rebake!
end
1 « J'aime »