사이트에 Bandcamp 플레이어를 자동으로 삽입하는 방법?

Discourse 포럼에 Bandcamp URL을 게시하면 해당 사이트의 임베디드 플레이어가 자동으로 가져와집니다. 제 음악 사이트에서도 이런 효과를 얻으려면 어떻게 해야 하나요?

og:video 태그를 설정해 보았지만 효과가 없었습니다.

감사합니다!

디스코urs가 아닌 당신의 사이트에서라는 뜻인가요?

디스코urs 소스를 살펴보고 “onebox” 또는 "one_box"를 검색해 보세요.

아니면 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. 를 참고하여 당신의 사이트를 위한 코드를 개발해 보세요.

제이, 안녕하세요.

저는 Bandcamp와 비슷한 웹사이트를 운영하고 있습니다. 사용자가 다른 웹사이트에 iframe을 추가하면 제 임베드가 표시되도록, 공유하신 링크와 유사한 임베드를 생성했습니다.

하지만 제가 말하려는 것은 단순히 Bandcamp URL을 게시하면 전체 iframe 임베드가 자동으로 나타나는 마법 같은 현상입니다. 이것은 Discourse 서버에서 설정된 것일까요?

여기서도 작동하는지 확인해 보겠습니다. 아래에 Bandcamp URL을 붙여넣어 보겠습니다.

네, ^ 보시는 것처럼 작동하는 임베드 음악 플레이어가 나타났습니다. iframe이나 JS를 붙여넣지 않았고, 위에서 인용한 임베드 URL만 붙여넣었을 뿐입니다.

이것은 Discourse가 특정 사이트를 위해 특별히 처리하는 기능인가요, 아니면 어떤 임베드 URL을 사용할지 알려줄 수 있는 마법 같은 헤더 태그를 설정할 수 있는 것인가요?

Jay가 지적했듯이 소스 코드를 살펴봐야 합니다.

'Onebox’는 일부 URL을 임베드로 변환하는 데 부분적으로 사용되는 라이브러리입니다.

아래 코드를 확인해 보셨나요?:

이 코드의 원래 의도는 Discourse가 아닌 사이트에서도 이 코드가 사용되도록 하는 것이었습니다.

이를 위해 (현재는 유지 관리되지 않는) gem이 있으며, (당신의 사이트가 RoR라면) 이를 활용할 수 있을 것입니다. 혹시 이 gem을 유지 관리하는 데 관심이 있으신가요?

주의할 점: Discourse의 코드는 그 이후로 상당히 발전했을 것입니다.

로버트 씨,

찾아내주셔서 감사합니다. 네, Discourse에는 이에 대한 특정 코드가 있습니다. 제 사이트에서 별도로 처리해야 하는 사항은 아닙니다. 그 부분은 해결되었습니다. 따라서 제 사이트가 Discourse에서 Bandcamp와 동일한 방식으로 지원되려면(그리고 잠재적으로 다른 포럼에서도), 제 사이트에서도 작동하도록 하려면 코드를 요청하거나 기여해야 합니다.

제 사이트는 RoR이 아니지만 Ruby를 조금 알고 있어서 기여할 수 있을 것 같습니다.


두 번째 질문도 있습니다. URL을 붙여넣는 것 외에도 iframe 태그를 사용하여 임베드를 추가해 보았습니다. 일반 웹사이트에서는 잘 작동하지만, 제 Discourse 포럼에서는 작동하지 않습니다. 사각형 박스는 표시되었지만 그 안에는 임베드가 표시되지 않았습니다. 권한 문제라고 생각하여 호스트를 허용된 iframe 목록에 추가했지만, 여전히 작동하지 않았습니다.

–

작동하지 않는다는 것을 보여주기 위해 스크린샷을 찍으려던 바로 그 순간, 갑자기 작동하기 시작했습니다! 그렇다면 허용된 호스트를 적용하는 데 시스템 내에서 어떤 종류의 지연이 있는 것은 아닌지 궁금해집니다.

더욱이 자세히 살펴보겠습니다. 지금까지 도움을 주셔서 감사합니다.

음, 방금 무슨 일이 일어나고 있는지 깨달았어요. allow iframe 설정을 변경하면 기존 게시물에는 바로 반영되지 않아요 (적어도 즉시는). 나중에 반영될 수도 있지만, 확신은 없어요.

하지만 - 새 게시물을 만들거나 기존 게시물을 편집하면 그때 설정이 적용됩니다.

그래서 이제 제 임베드와 URL이 모두 작동하네요. 즉, 관련 포럼에 연락해서 제 도메인 이름을 허용된 호스트에 추가해 달라고 요청하기만 하면, 그때부터 정상적으로 작동할 거예요.

감사합니다!

안녕하세요 :wave: :slight_smile:

기존의 게시물들은 다시 생성(rebake)되어야 합니다. 게시물 아래에 있는 세 점 아이콘을 클릭한 다음, 렌치 아이콘을 누르고, 'HTML 다시 생성(Rebuild HTML)'을 선택하여 수동으로 처리할 수 있습니다.
image

다시 생성해야 할 게시물이 많다면, 필요한 기준에 따라 일부만 다시 생성하기 위해 rake 작업을 사용하여 모든 게시물을 다시 생성하거나 사용자 정의 rails 스크립트를 사용할 수 있습니다.

아래와 같은 방식이 될 것입니다:

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