Desactivar la descarga de medios en onebox

Hola, vi que hay una opción para deshabilitar la descarga de audio:

<audio controls="#{@options[:disable_media_download_controls] ? 'controlslist="nodownload"' : ""}">

en onebox/lib/onebox/engine/audio_onebox.rb at main · discourse/onebox · GitHub

y

disable_media_download_controls: SiteSetting.disable_onebox_media_download_controls,

en discourse/lib/oneboxer.rb at 03998e0a299b7ae89678e2854e3abf84bd6ef132 · discourse/discourse · GitHub

Así que intenté escribirlo usando

./launcher enter app
rails c
SiteSetting.disable_onebox_media_download_controls=true

y también aquí

vi containers/app.yml
under params:
disable_media_download_controls: true
disable_onebox_media_download_controls: true
under env:
DISCOURSE_DISABLE_ONEBOX_MEDIA_DOWNLOAD_CONTROLS: true

pero todavía se puede descargar audio a través de la opción “descargar” del onebox. ¿Alguien puede ayudar? Muchas gracias.

1 me gusta

No lo sé, pero ¿cómo se debe escuchar audio si la descarga está deshabilitada?

hay una opción de descarga si haces clic en los tres puntos al final: ver imagen de esta publicación:

Lo que quiero es que la opción de descarga explícita esté oculta/deshabilitada, mientras que las personas aún puedan usar esto para escuchar el audio.

Todavía no lo entiendo. Discourse no puede transmitir, por lo que el archivo de audio debe descargarse para escucharlo. ¿O estoy totalmente equivocado?

¿O aceptas la descarga cuando un usuario no sabe que está descargando porque su dispositivo no pregunta dónde debería guardarlo?

Sin embargo, ese audio se puede guardar de todos modos grabando :wink:

Lo siento, no ayudo en nada, pero me gustaría entender por qué, qué, dónde y todo :rofl:

Mi punto débil es que este tipo de intentos de deshabilitación rara vez tienen éxito o son necesarios. Pero está bien si es factible.

1 me gusta

Si permite la opción de descarga explícita, el contenido de audio/vídeo podría almacenarse/utilizarse/comercializarse en otros lugares, donde dicha propiedad intelectual podría no estar autorizada correctamente. Por lo tanto, probablemente sea prudente que la opción predeterminada sea deshabilitar la opción de descarga explícita.

¿Puede aconsejarme cómo lograrlo a nivel de configuración/código? Gracias.

No es algo que haya usado, pero ¿hay algo en este tema que pueda ayudar?

1 me gusta

En lo que respecta al sitio web (usando Discourse), es importante evitar cualquier problema futuro relacionado con la propiedad intelectual (PI). Incluso si el autor utiliza una TC o algún tipo de tema, cualquier infracción de la PI podría hacer que el sitio web sea responsable de posibles daños, etc. Incluso si el sitio web parece no tener nada que ver con ello, solo porque actúa como un canal de intercambio, algún abogado puede tener otras ideas.

Por lo tanto, deshabilitar la opción de descarga explícita debería ser bastante útil, ya que no verías tal opción en la mayoría de los sitios web grandes como YouTube. ¿Alguien puede ayudar con el código/configuración para que esto suceda, por favor?

1 me gusta

Después de eso, necesitarás volver a hornear o editar la publicación con el audio local. ¿Lo has intentado?

1 me gusta

¿cómo volver a hornear o editar la publicación?

Haz clic en el botón de la publicación
, luego en el botón :wrench: y finalmente en “Rebuild HTML”

“Reconstruir HTML” hecho, pero todavía tengo la opción “Descargar”.

Probemos esto:

![614107_11861866-lq|audio](upload://jq0kR3R4YPrn1kM48EL33oVgjT8.mp3)

https://d11a6trkgmumsb.cloudfront.net/original/3X/8/8/8819dba2a51ca9f987e93d64dfe823161141d0f6.mp3

el segundo funciona (sin opción de descarga), pero el primero todavía la tiene.

Ya veo, la configuración del sitio solo afecta a onebox, por lo que solo al segundo tipo de audio, no al primero porque técnicamente no es un onebox.

¿Qué más hay que hacer para que funcione el primer caso?

1 me gusta

Si quieres profundizar en el código, proviene de

Necesitarás recibir la configuración del sitio en ese contexto de alguna manera y manejarla.

2 Me gusta

Como una solución rápida y difícil, intenté:

./launcher enter app
vi app/assets/javascripts/pretty-text/addon/discourse-markdown-it.js

y añadir

controlsList="nodownload"

a

<audio preload="metadata" controls>

y

./launcher restart app

pero todavía tengo la opción de Descargar. ¿Debería reconstruir la aplicación?

Eso no funcionaría ya que el JS es compilado por nuestro complicado pipeline de assets.

Si quieres una solución rápida y rudimentaria, un componente temático que escuche nuestra callback decoratedCooked y cambie el elemento audio es tu mejor opción. Puedes aprender sobre ello en la Guía del desarrollador para temas de Discourse.

1 me gusta