Media Object

Methods: bulkinfo | info | create | upload | update | delete

bulkinfo

Get information about media by one or several codes.

Input parameters

Required parameters:

  • String apikey (Project API-key)
  • String code[] (Media code)
  • Array code[] (list of Media codes)

Выходные параметры

  • String Code (Media code)
  • String Title (Title of media file)
  • Integer Width (Video width)
  • Integer Height (Video height)
  • Integer FileSize (Original filesize)
  • String FileName (Original filename)
  • String MediaStatus (Status of media file)
  • Integer Duration (Video duration in sec)
  • String CreatedAt (Creation date)
  • String PlayerLink (Player link)
  • String PlayerCode (Player code)
  • String Poster - Code (Poster code)
  • Integer Poster - Width (Poster width)
  • Integer Poster - Height (Poster height)
  • String Poster - Url (Link to Poster)
  • String Timeline - PreviewsVtt (Vtt file format for timeline frames)

Sample query:

https://boomstream.com/api/media/bulkinfo?apikey=[API_KEY]&code[]=[MEDIA_CODE_1]&code[]=[MEDIA_CODE_2]&code[]=[MEDIA_CODE_N]

Sample response:

<Response>
    <Items>
        <Item>
            <Code>xxxxxxxx</Code>
            <Title>test - 2024-03-13 16:45:09</Title>
            <Type>video</Type>
            <Width>1280</Width>
            <Height>720</Height>
            <FileSize>1000000</FileSize>
            <FileName>test.mp4</FileName>
            <MediaStatus>Done</MediaStatus>
            <Duration>6</Duration>
            <Description/>
            <CreatedAt>2024-03-13 16:45:09</CreatedAt>
            <PlayerLink>https://play.boomstream.com/xxxxxxxx</PlayerLink>
            <PlayerCode>&lt;iframe width=&quot;{{width}}&quot; height=&quot;{{height}}&quot; src=&quot;https://play.boomstream.com/xxxxxxxx&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;</PlayerCode>
            <Poster>
                <Code>h7sZjLB9-a1</Code>
                <Width>1280</Width>
                <Height>720</Height>
                <Url>https://bs.boomstream.com/adaptive/xxxxxxxx.jpg</Url>
            </Poster>
            <Timeline>
            <PreviewsVtt>https://bs.boomstream.com/adaptive/xxxxxxxx/playlist.vtt</PreviewsVtt>
            </Timeline>
        </Item>
    </Items>    
    <Status>Success</Status>
</Response>

info

Get additionsl information about media by it's code.

Input parameters

Required parameters:

  • String apikey (Project API-key)
  • String code (Media code)

Output parameters

  • String Title (Title of media file)
  • Integer Width (Video width)
  • Integer Height (Video height)
  • Integer FileSize (Original filesize)
  • String FileName (Original filename)
  • Integer Duration (Video duration in sec)
  • String PlayerCode (Player code)
  • String Poster - Code (Poster code)
  • Integer Poster - Width (Poster width)
  • Integer Poster - Height (Poster height)
  • String Poster - Url (Link to Poster)
  • String Transcodes - Item - Code (Transcode code)
  • String Transcodes - Item - Title (Transcode quality)
  • Integer Transcodes - Item - Width (Video width)
  • Integer Transcodes - Item - Height (Video height)
  • String Transcodes - Item - PseudoFLV (Link to PseudoFLV)
  • String Transcodes - Item - PseudoMP4 (Link to PseudoMP4)
  • String Transcodes - Item - AdobeHDS (Link to AdobeHDS)
  • String Transcodes - Item - AppleHLS (Link to AppleHLS)
  • String Transcodes - Item - MicrosoftSmooth (Link to MicrosoftSmooth)
  • String Screenshots - Item - Code (Screenshot code)
  • Integer Screenshots - Item - Width (Screenshot width)
  • Integer Screenshots - Item - Height (Screenshot height)
  • String Screenshots - Item - Url (Link to Screenshot)
  • String Timeline - Sprites - Item - Code (Short sprite code)
  • Integer Timeline - Sprites - Item - Width (Short sprite width)
  • Integer Timeline - Sprites - Item - Height (Short sprite height)
  • Integer Timeline - Sprites - Item - FrameCount (Frame count of the short sprite)
  • String Timeline - Sprites - Item - Url (Short sprite url)
  • String Timeline - FullSprite - Code (Full sprite code)
  • Integer Timeline - FullSprite - Width (Full sprite width)
  • Integer Timeline - FullSprite - Height (Full sprite height)
  • Integer Timeline - FullSprite - FrameCount (Frame count of the full sprite)
  • String Timeline - FullSprite - Url (Full sprite url)
  • String Timeline - Previews - Item - Code (Frame code)
  • Integer Timeline - Previews - Item - Width (Frame width)
  • Integer Timeline - Previews - Item - Height (Frame height)
  • Float Timeline - Previews - Item - TimePosition (Progress time on the frame place)
  • String Timeline - Previews - Item - SpriteURL (Short sprite url where the frame is located)
  • String Timeline - Previews - Item - SpriteURLxywh (Short sprite url where the frame is located with frame position inside of the sprite)
  • String(JSON) Timeline - Previews - Item - SpritePosition (Position in the sprite)
  • String Timeline - PreviewsVtt (Vtt file format for timeline frames)

Sample query:

https://boomstream.com/api/media/info?apikey=[API_KEY]&code=[MEDIA_CODE]

Sample response:

<Response>
   <Title>demovideo.avi</Title>
    <Code>xxxxxx</Code>
    <Type>video</Type>
    <Width>1600</Width>
    <Height>900</Height>
    <FileSize>1000000</FileSize>
    <FileName>test.mp4</FileName>
    <MediaStatus>Done</MediaStatus>
    <Duration>61</Duration>
    <PlayerCode>&amp;lt;iframe width=&amp;quot;{{width}}&amp;quot; 
       height=&amp;quot;{{height}}&amp;quot; 
       src=&amp;quot;https://play.boomstream.com/xxxxxx&amp;quot; 
       frameborder=&amp;quot;0&amp;quot; 
       scrolling=&amp;quot;no&amp;quot; 
       allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;
    </PlayerCode>
    <DownloadLink>
       https://bs.boomstream.com/balancer/hash:abd6c666f029e065e4aedb44e5c5f176/xxxxxx.orig
    </DownloadLink>
    <Poster>
        <Code>xxxxxx-a1</Code>
        <Width>1600</Width>
        <Height>900</Height>
        <Url>https://bs.boomstream.com/balancer/xxxxxx-a1.jpg</Url>
    </Poster>
    <Transcodes>
        <Item>
            <Code>xxxxxx-xxxxxx</Code>
            <Title>1080p</Title>
            <Width>1600</Width>
            <Height>900</Height>
            <PseudoMP4>https://bs.boomstream.com/balancer/xxxxxx-xxxxxx.mp4</PseudoMP4>
            <AppleHLS>https://bs.boomstream.com/balancer/xxxxxx-xxxxxx/playlist.m3u8</AppleHLS>
        </Item>
        ....
    </Transcodes>
    <Adaptive/>
    <Screenshots>
        <Item>
            <Code>xxxxxx-a21</Code>
            <Width>1600</Width>
            <Height>900</Height>
            <Url>https://bs.boomstream.com/balancer/xxxxxx-a21.jpg</Url>
        </Item>
         ....
    </Screenshots>
    <Timeline>
        <Sprites>
            <Item>
                <Code>xxxxxxxx-s1</Code>
                <Width>800</Width>
                <Height>450</Height>
                <FrameCount>25</FrameCount>
                <Url>https://bs.boomstream.com/balancer/xxxxxxxx-s1.webp</Url>
            </Item>
            .... 
        </Sprites>
        <FullSprite>
            <Code>xxxxxxxx-f</Code>
            <Width>1600</Width>
            <Height>630</Height>
            <FrameCount>61</FrameCount>
            <Url>https://bs.boomstream.com/balancer/xxxxxxxx-f.webp</Url>
        </FullSprite>
        <Previews>
            <Item>
                <Code>xxxxxxxx-t1</Code>
               <Width>160</Width>
               <Height>90</Height>
               <TimePosition>0.00</TimePosition>
               <SpriteURL>https://bs.boomstream.com/balancer/xxxxxxxx-s1.webp</SpriteURL>
               <SpriteURLxywh>https://bs.boomstream.com/balancer/xxxxxxxx-s1.webp#xywh=0,0,160,90</SpriteURLxywh>
               <SpritePosition>[0, 0, 160, 90]</SpritePosition>
            </Item>
            .... 
        </Previews>
        <PreviewsVtt>https://bs.boomstream.com/adaptive/xxxxxxxx/playlist.vtt</PreviewsVtt>
    </Timeline>
    <Status>Success</Status>
</Response>

create

Create new media file

Input parameters

Required parameters:

  • String apikey (Project API-key)
  • String title (Media title)
  • String link (Reference to the source)

Sample query:

https://boomstream.com/api/media/create?apikey=[API_KEY]&link=http://example.com/video.mp4&title=temp

Sample response:

<Response>
    <Code>dNO6bnZE</Code>
    <Status>Success</Status>
</Response>

upload

Upload new media file through an HTML form

1. Need to get data for upload form. To do this, run the following query:

Input parameters

Required parameters:

  • String apikey (Project API-key)
  • String title (Media title)

Sample query:

https://boomstream.com/api/media/upload?apikey=[API_KEY]&title=temp

Sample response:

<Response>
  <UploadUrl>
    https://node.org/upload/hash:8d7cd/f1a05782f77aca5cc78647178110ac8a
  </UploadUrl>
  <ProgressBarUrl>
    https://boomstream.com/api/media/progressbar
  </ProgressBarUrl>
  <Status>
    Success
  </Status>
</Response>

2. Create a page of upload, for example "upload.php". Add tag “iframe” to the body and insert parameter “UploadUrl”.

Sample code:

  <body>
    <iframe src="https://localhost/iframe.php?link=<UploadUrl>">
  </body>

3. Create a page for the “Browse” button, which will be displayed in the frame - iframe.php.

Sample page code:

  <script type="text/javascript">
    function submitForm() {
        parent.runUpload();
        $('#form1').submit();
    }
  </script>

  <form action="<UploadUrl>" method="POST" enctype="multipart/form-data" id="form1">
    <input type="file" name="file" onchange="submitForm()">
  </form>

4. You must create the proxy script to get upload status - progressbar.php.

Sample page code:

  <?php
    $progressBarUrl = (isset($_GET['progressBarUrl'])) ? $_GET['progressBarUrl'] : '';
    echo @file_get_contents($progressBarUrl . '&format=json');
  ?>

5. Add code javascript on the page "upload.php". It will send every second requests to progressbar.php.

Sample page code:

  <script type="text/javascript">
    var refreshIntervalId;
    var refresh = 1000;
    function runUpload() {
      $('#form1').submit();
        refreshIntervalId = setTimeout('getPercent()', refresh);
      }
            
      function getPercent(){
        $.get('https://localhost/progressbar.php', {progressBarUrl:"<progressBarUrl>"}, function(data){
          if(data.Action=='done') {
            console.log("DONE");
          } else {
             refreshIntervalId = setTimeout('getPercent()', refresh);
          }
        },'json');
      }
   </script>

Required parameters:

  • String progressBarUrl (from first request)

Sample response:

<Response>
  <Percent>10</Percent>
  <Action>work</Action>
  ...
</Response>

When the percent reaches 100%, you will get the following response: Sample response:

<Response>
  <Action>done</Action>
  <Code>dsadas13</Code>
  ...
</Response>

This response suggests, that media file was successfully uploaded.

update

Update parameters of media or reupload the original

Input parameters

Required parameters:

  • String apikey (Project API-key)
  • String code (Media code)

Optional parameters:

  • String title (Media title)
  • String link (Reference to the source)

Sample query:

https://boomstream.com/api/media/update?apikey=[API_KEY]&code=[MEDIA_CODE]&link=http://example.com/video.mp4&title=test2

Sample response:

<Response>
    <Status>Success</Status>
</Response>

delete

Delete media file

Input parameters

Required parameters:

  • String apikey (Project API-key)
  • String code (Media code)

Sample query:

https://boomstream.com/api/media/delete?apikey=[API_KEY]&code=[MEDIA_CODE]

Sample response:

<Response>
    <Status>Success</Status>
</Response>