Distribución del cliente

Mientras que los clientes móviles pueden distribuirse a través de la mayoría de tiendas de aplicaciones del sistema, los clientes de escritorio requieren una solución personalizada para descargar y actualizar. Discord proporciona varias APIs para descargar clientes, sus módulos nativos, y mantener todo actualizado. Visita la página de descargas para aprender más sobre los clientes disponibles actualmente.

Enlaces base de distribución

Estas URLs, proporcionadas por conveniencia, dan acceso a todas las descargas de clientes (y redirigen el acceso a las alojadas en CDN), pero NO se usan para las peticiones de API de abajo. Para esas, consulta la URL Base de API. Ten en cuenta que los enlaces de descarga obtenidos de la API pueden no usar siempre estas URLs.

https://dl.discordapp.net/ https://dl-ptb.discordapp.net/ https://dl-canary.discordapp.net/ https://dl-development.discordapp.net/

Clientes

Web

Discord ofrece un cliente web que puede usarse en un navegador. Este mismo cliente web también se usa en el cliente de escritorio junto con módulos nativos para proporcionar una experiencia más rica.

Canal de lanzamiento web

Valor
URL
Descripción

stable

Compilación estable.

ptb 1

Compilación de prueba pública.

canary 1

Compilación de prueba alfa.

1 Consulta el artículo del Centro de Ayuda para más información sobre los clientes de prueba de Discord.

Escritorio

Discord ofrece clientes de escritorio Electron para Windows, macOS y Linux.

Windows

La aplicación de Windows usa una pila de instalación y actualización separada de las otras plataformas de escritorio. Consulta Get Latest Distributed Application Installer para más información sobre obtener el último instalador de aplicación, y Get Latest Distributed Application Manifest para más información sobre obtener las últimas actualizaciones de aplicación.

macOS

Consulta Get Latest Application Installer para más información sobre obtener el último instalador de aplicación, y Get Application Updates para más información sobre obtener las últimas actualizaciones de aplicación.

Linux

Consulta Get Latest Application Installer para más información sobre obtener el último instalador de aplicación, y Get Application Updates para más información sobre obtener las últimas actualizaciones de aplicación. Ten en cuenta que la aplicación de Linux no se actualiza automáticamente.

Canal de lanzamiento de escritorio

Los canales de lanzamiento de escritorio siguen los canales de lanzamiento web al renderizar el cliente. Sin embargo, el host de aplicación y los módulos nativos se actualizan por separado del cliente mismo.

Valor
Descripción

stable

Compilación estable.

ptb 1

Compilación de prueba pública.

canary 1

Compilación de prueba alfa.

development 2

Compilación de desarrollo.

1 Consulta el artículo del Centro de Ayuda para más información sobre los clientes de prueba de Discord.

2 La compilación de desarrollo sigue el canal de lanzamiento web canary y no se recomienda su uso. Puede ser inestable o estar rota en cualquier momento.

Tipo de plataforma de escritorio

Valor
Descripción

win

Windows.

osx

macOS.

linux

Linux.

Tipo de arquitectura de escritorio

Valor
Descripción

x86

Compilación x86 de 32 bits.

x64

Compilación x86 de 64 bits.

arm64

Compilación ARM de 64 bits.

Formato de ejecutable de escritorio

Valor
Descripción

deb

Archivo de paquete de software Debian.

tar.gz

Archivo de almacén comprimido.

Móvil

Discord mantiene clientes móviles estables y beta tanto para Android como para iOS.

Canal de lanzamiento de Android

1 Consulta el artículo del Centro de Ayuda para más información sobre los clientes de prueba de Discord.

Valor
URL
Descripción

stable

Compilación estable de aplicación.

beta 1

Compilación beta de aplicación.

alpha 1

Compilación alfa de aplicación.

Canal de lanzamiento de iOS

1 Consulta el artículo del Centro de Ayuda para más información sobre los clientes de prueba de Discord.

Valor
URL
Descripción

beta 1

Compilación beta de aplicación.

alpha 1

<private>

Compilaciones internas de aplicación.

Endpoints

Obtener último instalador de aplicación

GET /download/{release_channel}

Obsoleto

Redirige al último instalador de aplicación para el canal de lanzamiento proporcionado y la plataforma seleccionada.

Un canal de lanzamiento especial de la aplicación móvil puede usarse para redirigir a la página de descarga de los clientes móviles.

Parámetros de cadena de consulta

1 Solo aplicable a la plataforma Linux.

Nombre
Tipo
Descripción

platform

string

La plataforma para la que obtener el instalador.

format? 1

string

El formato de ejecutable para el que obtener el instalador (por defecto deb).

Obtener actualizaciones de aplicación

GET /updates/{release_channel}

Obsoleto

Devuelve información sobre la última actualización de host de aplicación para el canal de lanzamiento proporcionado y la plataforma seleccionada.

Parámetros de cadena de consulta

Nombre
Tipo
Descripción

platform?

string

La plataforma para la que obtener información de actualización (por defecto osx).

Cuerpo de respuesta

1 Solo se proporciona si las actualizaciones automáticas están disponibles para la plataforma seleccionada.

Nombre
Tipo
Descripción

name

string

La última versión de host.

pub_date

ISO8601 timestamp

Cuándo se publicó la actualización.

url? 1

string

La URL al instalador correspondiente.

notes? 1

string

Cualquier nota extra para la actualización.

Ejemplo de respuesta

{
  "name": "0.0.75",
  "pub_date": "2023-07-05T17:16:10",
  "url": "https://dl-ptb.discordapp.net/apps/osx/0.0.75/DiscordPTB.zip",
  "notes": ""
}

Obtener versiones de módulos nativos

GET /modules/{release_channel}/versions.json

Obsoleto

Devuelve un mapeo de nombres de módulos a versiones enteras representando las versiones de módulos nativos encontradas para el canal de lanzamiento proporcionado y la plataforma seleccionada.

Los módulos nativos tienen una versión única por versión del host. Este endpoint puede devolver un objeto vacío si no hay módulos nativos disponibles para los parámetros proporcionados (por ejemplo, si la versión del host proporcionada no existe).

Parámetros de cadena de consulta

Nombre
Tipo
Descripción

platform?

string

La plataforma para la que obtener información de actualización (por defecto osx).

host_version?

string

La versión de host para la que obtener información de actualización (por defecto 0).

Ejemplo de respuesta

{
  "discord_cloudsync": 1,
  "discord_desktop_core": 1,
  "discord_dispatch": 1,
  "discord_erlpack": 1,
  "discord_game_utils": 1,
  "discord_krisp": 1,
  "discord_modules": 1,
  "discord_rpc": 1,
  "discord_spellcheck": 1,
  "discord_utils": 1,
  "discord_voice": 1
}

Obtener módulo nativo

GET /modules/{release_channel}/{module_name}/{module_version}

Obsoleto

Redirige a un archivo ZIP del módulo nativo para el canal de lanzamiento, nombre de módulo y versión de módulo proporcionados, si se encuentra.

Los módulos nativos tienen una versión única por versión del host.

Parámetros de cadena de consulta

Nombre
Tipo
Descripción

platform?

string

La plataforma para la que obtener información de actualización (por defecto osx).

host_version?

string

La versión de host para la que obtener información de actualización (por defecto 0).

Obtener último instalador de aplicación distribuida

GET /downloads/distributions/app/installers/latest

Redirige al último instalador de aplicación para la plataforma seleccionada.

Parámetros de cadena de consulta

Nombre
Tipo
Descripción

channel

string

El canal de lanzamiento para el que obtener el instalador.

platform

string

La plataforma para la que obtener el instalador.

arch

string

La arquitectura para la que obtener el instalador.

Obtener último manifiesto de aplicación distribuida

GET /updates/distributions/app/manifests/latest

Devuelve información sobre las últimas actualizaciones de aplicación para la plataforma seleccionada.

Debido al almacenamiento en caché, las nuevas versiones del host pueden no estar disponibles para todos inmediatamente después de su lanzamiento.

Los módulos nativos tienen una versión única por cada versión del host.

Parámetros de cadena de consulta

Nombre
Tipo
Descripción

install_id?

string

Un UUID único generado por el cliente para la instalación actual.

channel

string

El canal de lanzamiento para el que obtener el manifiesto.

platform

string

La plataforma para la que obtener el manifiesto.

arch

string

La arquitectura para la que obtener el manifiesto.

platform_version?

string

La versión del sistema operativo del cliente (por ejemplo 10.0.19045 en Windows).

Cuerpo de respuesta

1 Este campo solo se proporciona a través del endpoint de actualizaciones rehosteado anterior, y requiere que install_id y platform_version estén establecidos y sean compatibles.

Nombre
Tipo
Descripción

full

manifest package version object

El paquete de host completo para la última versión de host.

deltas

array[manifest package version object]

Los paquetes de host delta para versiones de host anteriores.

modules

map[string, manifest package object]

Los módulos nativos disponibles para descargar/actualizar.

required_modules

array[string]

Los nombres de los módulos nativos que el cliente requiere.

metadata_version? 1

?integer

La versión de los metadatos del manifiesto.

Estructura de paquete de manifiesto

Nombre
Tipo
Descripción

full

manifest package version object

El paquete completo para la última versión de host.

deltas

array[manifest package version object]

El paquete delta para versiones de host anteriores.

Estructura de versión de paquete de manifiesto

Nombre
Tipo
Descripción

host_version

array[integer, integer, integer]

La versión de host a la que apunta el paquete.

module_version?

integer

La versión del módulo incluida en el paquete.

package_sha256

string

El hash SHA256 del archivo del paquete.

url

string

La URL de descarga al tarball del paquete comprimido con Brotli.

Ejemplo de respuesta

{
  "modules": {
    "discord_overlay2": {
      "full": {
        "host_version": [1, 0, 9015],
        "module_version": 1,
        "package_sha256": "baa1196292f888c8a90413ea19201849c7a8b7be1a52f2d6b9a185e04ab1b49a",
        "url": "https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9015/discord_overlay2/1/full.distro"
      },
      "deltas": [
        {
          "host_version": [1, 0, 9014],
          "module_version": 1,
          "package_sha256": "7634e584b90bb0315fff0b69dd19712c1acbb0687657548e698e5348dc59c824",
          "url": "https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9015/discord_overlay2/1/from/1.0.9014/1"
        },
        {
          "host_version": [1, 0, 9013],
          "module_version": 2,
          "package_sha256": "60b2876b144d918cf8f1ba61110162782c9dc52def8d64b97222cd607989c211",
          "url": "https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9015/discord_overlay2/1/from/1.0.9013/2"
        }
      ]
    }
  },
  "full": {
    "host_version": [1, 0, 9015],
    "package_sha256": "bde31e984e70465fcc9dc01241e3fd8bbb3f84cb49567b8b9930a6a7bc193b7b",
    "url": "https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9015/full.distro"
  },
  "deltas": [
    {
      "host_version": [1, 0, 9014],
      "package_sha256": "48b8f905c7a40ca588e02db4b2903926bc62dbc9e3c9f38f8548882724fac6fa",
      "url": "https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9015/from/1.0.9014"
    },
    {
      "host_version": [1, 0, 9013],
      "package_sha256": "357914897b025320fe139e3ddb9bc8b81c8d4747947026b83d0627f282d35aff",
      "url": "https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9015/from/1.0.9013"
    }
  ],
  "required_modules": [
    "discord_desktop_core",
    "discord_erlpack",
    "discord_spellcheck",
    "discord_utils",
    "discord_voice"
  ]
}