burger
infomaniak
infomaniak
cloud-computing-logo
Cloud Computing
web-domain-logo
Web & Domains
event-marketing-logo
Events & Marketing
  • Our products
    • Collaborative tools icon chevron
    • Web & Domains icon chevron
    • Cloud Computing icon chevron
    • Events & Marketing icon chevron
    • Streaming icon chevron

      ksuiteCollaborative suite

      Discover the collaborative suite → Discover →
    • kSuite Professional email, sovereign cloud and AI for sustainable performance
    • kSuite The suite for secure communication, storage and sharing
    • kdrive
      kDrive Store, collaborate and share your files
    • mail service
      Mail Service Create your email addresses with your domain
    • kChat
      kChat Communicate live with your teams
    • kmeet
      kMeet Organise your meetings online in complete security
    • swisstransfer
      SwissTransfer Send your files up to 50 GB free of charge.
    • kpaste
      kPaste Share and encrypt your sensitive information
    • ksuite
      Custom Brand Control the brand image of your products
    • kChat
      Chk Link reducer & QR code generator
      Find the web hosting solution you need
    • Domain name
      Domain name Reserve your domain name at the best price
    • Site Creator
      Site Creator Create your website with ease
    • web hosting
      Web Hosting Create your website with over 100 CMS
    • web hosting
      Wordpress Hosting Create your WordPress website easily
    • Cloud Server
      Cloud Server Power up your sites with guaranteed resources
    • Node.js Hosting Create a dynamic, interactive site with Node.js
    • SSL Certificat
      SSL certificates Secure your websites with an EV or DV certificate
    • Options
    • Domain privacy
      Domain Privacy Protect your domains’ private data
    • DNS Fast Anycast
      FastAnycast DNS Speed up your site access times
    • Dyn DNS
      DynDNS Access your devices remotely
    • Dyn DNS
      Renewal Warranty Secure your domains against loss and theft
      Find the right Cloud Computing solution

      Cloud services

    • public cloud
      Public Cloud (IaaS) Create your projects in a high-end, ultra-competitive Cloud
    • Cloud Server
      VPS Cloud Create a Windows / Linux server
    • Kubernetes service Deploy your containerised apps on a large scale.
    • VPS Lite
      VPS Lite Create a Windows/Linux server at a low cost
    • Database Service Manage your databases with a managed solution
    • jelastic cloud
      Jelastic Cloud (PaaS) Create your own customised environments
    • Other services

    • llm api
      AI Tools Boost your productivity with our sovereign AI
    • swiss backup
      Swiss Backup Back up your devices in the Cloud
    • nas synology
      NAS Synology Rent a NAS in our secure data centers
    • High availibility
      Very High Availability Create a multi-data center infrastructure with customised SLAs
    • Housing
      Housing Install your servers in our data centers
    • Auth Add a privacy-friendly login method to your apps
      Infomaniak Events, the independent local events portal
      Online ticketing service with a wide choice of concerts, shows and events.
    • online shop
      Ticketing Create your ticketing service and sell tickets
    • kdrive
      Access Control Control access to your events with ease
    • kdrive
      Guest manager Automate your event invitations
    • kdrive
      Newsletter Send your newsletters at competitive prices
    • Streaming radio
      Streaming radio Create and broadcast your own live radio station online
    • streaming video
      Video-Streaming Create and broadcast live events and TV online
    • VOD and AOD
      VOD & AOD service Host and broadcast your recordings without limits
  • Resources
    documentation icon Documentation
    Guides & tutorials
    API documentation
    special offers icon Special offers
    Get started for free
    Student programme
    Become an affiliate
    partner program icon Partner programme
    Find a partner
    Become a partner
    support icon Support & contact
    Contact Support
    Premium support - 24/7
    Contact our sales department
    Hiring an expert
    Migrate to Infomaniak
  • About us
    forest
    icon Ecological commitment
    We pollute. But we are taking action to reduce the footprint of our services and infrastructure
    Discover our commitment →
    icon About Infomaniak
    Our vision, our values
    Our teams
    Infomaniak is recruiting
    Press and communication
    Blog and news
    icon Security
    Data confidentiality
    Bug Bounty Programme
  • Get started for free
    Sign in
  • search-icon
    close-icon
      icon

      Would your needs exceed our solutions? To find out, contact us so that we can advise you personally.

      Our flagship products:
  • search-icon
  • Get started for free
    Sign in
Price Price
Knowledge base

1000 FAQs, 500 tutorials and explanatory videos. Here, there are only solutions!

Knowledge base Secure an MP3/AAC or HLS stream with a unique key

    Secure an MP3/AAC or HLS stream with a unique key

    This guide explains how to maintain control over your MP3/AAC or HLS Streaming Radio streams by activating unique key (token) protection to decide, for example, whether a listener can listen to your radio or not.

     

    Introduction

    • The principle is simple: with each connection, you will make a request to the Infomaniak API, which will return a unique token with a limited and customizable lifespan. This token will authorize anyone who possesses it to consume the stream during this period.
    • You can protect an MP3/AAC or HLS stream independently of each other (the same applies to geolocation).
    • Enabling the restriction involves changing the stream configuration, which may take a few minutes to be replicated across the servers.

     

    Protect an audio stream with a unique key

    To do this, simply go to the restriction settings and activate token protection on the stream you wish to secure:

    1. Click here to access the management of your product on the Manager Infomaniak (need help?).
    2. Click directly on the name assigned to the product in question.
    3. Click on the name of the audio stream in question.
    4. Click on Restrictions in the left sidebar.
    5. Select HLS if necessary.
    6. Click on the action menu â‹® located to the right of the relevant item.
    7. Click on Token Restriction:

       

    Enable the protection next.

    Warning, when you activate this option, access to the stream will be instantly blocked for new connections. Adapt your Players to take into account the restriction, as illustrated in the example below:

     

    Create a Radio API Token

    To access the Radio API, you must first authenticate using an application token. This step only needs to be done once. To create this application token, refer to this other guide.

    The scope is radio and with unlimited lifetime to avoid having to regenerate a code on a regular basis. Once the token is generated, copy it to paste it into the example below.

     

    PHP usage example

    For MP3/AAC or HLS, the code can be quite similar, only the URL called in POST changes in its form.

    Paste the generated token below instead of the one indicated:

    if (!defined('API_TOKEN')) {
         define('API_TOKEN', 'AYF5lSh3c7Xy5974Fs12RTkTThujT-L9R4Xk2ZfGyP6sV7QqJ1oC3jD8nFtKzIxUeMw5oNzR6');
    }
    /**
     * Fonction générique pour executer des requêtes cURL
     *
     * @param string $method Méthode HTTP (GET, POST, PUT, etc...)
     * @param string $url Url de l'api a requêter
     * @param array $headers Liste des en-têtes HTTP (l'autorisation doit être passée ici avec un ['Authorization: Bearer ']
     * @param array $payload Un tableau contenant les données pour créer un token
     * @return mixed
     */
    
    function request(string $method, string $url, array $headers = [], array $payload = []): mixed{
        // prepare options array
        $opts = [
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_URL => $url,
            CURLOPT_CUSTOMREQUEST => strtoupper($method),
        ];
    
        // add payload if relevant
        if ($payload && $method !== 'GET') {
            $opts[CURLOPT_POSTFIELDS] = json_encode($payload);
        }
        $ch = curl_init();
        curl_setopt_array($ch, $opts);
        $result = curl_exec($ch);
        if(curl_errno($ch)){
            throw new Exception(curl_error($ch));
        }
        $data = json_decode($result, true);
        if ($data['result'] === 'error') {
            throw new Exception($data['error']['description'] ?? 'an error occured');
    
        }
        return $data['data'];
    }

     

    We are going to create the token. The URL for creating the token breaks down as follows:

    • For an MP3 / AAC stream
    POST https://api.infomaniak.com/1/radios/acl/streams/mountpoint.mp3/token

    Example to protect https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac the route will be: https://api.infomaniak.com/1/radios/acl/streams/newradiotest-128.aac/token

    • For an HLS stream
    POST https://api.infomaniak.com/1/radios/acl/hls_streams/<stream>/token

    Example to protect https://myradiostream.radiohls.infomaniak.com/myradiostream/manifest.m3u8 the route will be: https://api.infomaniak.com/1/radios/acl/hls_streams/myradiostream/token

    Example for MP3/AAC, make sure to adjust:

    $token = request(
        'POST',
       'https://api.infomaniak.com/1/radios/acl/streams/newradiotest-128.aac/token',
        // en-tête d'authorization
        [
            'Authorization: Bearer ' . API_TOKEN,
            'Content-Type: application/json',
        ],
        /**
         * payload pour créer le token, vous pouvez passer les valeurs suivantes
         * window     | 300               | optionnel | durée de validité du token (default: 5 minutes)
         */
    
        [
            'window' => 3600, // 1h validity
        ]
    );

     

    It is important to note that if this code is generated at the time of page loading, the listener will have "window" seconds to start playing the stream. Beyond this delay, the token will expire, and the stream will no longer be able to be launched unless the page is reloaded. Depending on your needs and use case, it will be necessary to adjust this delay in the best possible way.

    You will also need to replace the playback URL of your stream below with the one indicated, while keeping the $token parameter at the end. Finally, display the Player (here a simple html5 tag, but you can of course add any overlay afterwards, the token being passed in the $_GET parameters of the url).

    $streamUrl = "https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac?$token";
    echo "<audio controls=""><source src="$streamUrl"></audio>";


    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Display all FAQs for this product
    logo infomaniak
    Prices do not include VAT
    facebook
    twitter
    linkedin
    instagram

    Infomaniak

    About Infomaniak The team Infomaniak is recruiting Press space Infomaniak blog All certificates Products and offers Clients' opinions

    Support

    Assistance 7/7 FAQ and guides Premium Support Sales contact API REST Report abuse WHOIS Statuts Public Cloud Service status

    Partnerships

    Become a reseller Affiliate programme Directory of partners Requests for quotes

    Ecology

    Green hosting Certificates & awards

    Follow our development

    The email entered is invalid
    earth icon
    • EN
      • EN
      • DE
      • ES
      • FR
      • IT
    ©2025 Infomaniak - Legal documents - Legal notice - Data Protection - Privacy Policy - Site map - Manage your cookies
    icann-logo
    swiss
    new-iso
    swiss-hosting
    logo infomaniak
    Prices do not include VAT

    Infomaniak

    About Infomaniak The team Infomaniak is recruiting Press and media Infomaniak blog All certificates Products and offers Clients' opinions

    Support

    Assistance 7/7 FAQ and guides Premium Support offer Sales contact API REST Report abuse WHOIS Statuts Public Cloud Service status

    Partnerships

    Become a reseller Affiliate programme Directory of partners Requests for quotes

    Ecology

    Green hosting Certificates & awards

    Follow our development

    The email entered is invalid
    icann-logo
    swiss
    new-iso
    swiss-hosting

    facebook
    twitter
    linkedin
    instagram
    ©2025 Infomaniak
    Contracts - Legal notice - Data Protection - Privacy Policy - Site map - Manage your cookies

    Managers

    earth icon
    • EN
      • EN
      • DE
      • ES
      • FR
      • IT
    Your browser is outdated, security and browsability are no longer guaranteed. We recommend that you update it as soon as possible by clicking here.