Загружать песни / аудио-файлы в конкретную учетную запись soundcloud, используя soundcloud api? - PullRequest
0 голосов
/ 21 мая 2019

Я работаю над кодом php, как показано ниже, который преобразует mp4 файлы (присутствующие в папке in_folder) в mp3 (и отправляет их в out_folder)

<?php
foreach ($mp4_files as $f)
{

    $parts = pathinfo($f);
    switch ($parts['extension'])
    {
        case 'mp4' :
            $filePath = $src_dir . DS . $f;
            system('ffmpeg -i ' . $filePath . ' -map 0:2 -ac 1 ' . $destination . DS . $parts['filename'] . '.mp3', $result);

            break;

        case 'mp3' :
            // copy($f, $destination. DS . $parts['filename']. '.' . $parts['extension']);
            copy($f, $mp3_processed . DS . $parts['filename'] . '.mp3');
            copy($f, $destination . DS . $parts['filename'] . '.mp3');
            break;
    }
}
?>


<script src="https://connect.soundcloud.com/sdk/sdk-3.3.2.js"></script>
<script>
SC.initialize({
  client_id: 'YOUR_CLIENT_ID',
  redirect_uri: 'http://example.com/callback'
});

var getTracks = function() { return SC.get('/me/tracks'); };

// connect and update track data
SC.connect().then(getTracks).then(function(tracks){
  SC.put('/tracks' + tracks[0].id, {
    track: {
      description: 'This track was recorded in Berlin',
      genre: 'Electronic'
    }
  });
});
</script>

Мой следующий шаг - загрузка mp3 файлов (которые находятся в папке out_folder) в конкретную учетную запись soundcloud . Я добавил несколько скриптов (где заканчивается php код) из руководства разработчика soundcloud в качестве первого шага для загрузки песен из каталога песен в soundcloud.

Постановка задачи:

Мне интересно, какие изменения я должен внести в приведенный выше код сценария, чтобы мы могли загружать песни / аудиофайлы из каталога out_folder в любую конкретную учетную запись soundcloud . Любые указатели будет высоко оценен

1 Ответ

0 голосов
/ 25 мая 2019

После того, как вы запишите файл с помощью copy (), должно сработать что-то вроде этого:

$blob=file_get_contents($destination . DS . $parts['filename'] . '.mp3');
$title='THE_TITLE';
echo "
<script>
var aFileParts = ['$blob']; // an array with binary data  
var audioBlob = new Blob(aFileParts, {type : 'audio/mpeg'}); 

SC.upload({
  file: audioBlob , // a Blob of your WAV, MP3...
  title: '$title'
});
</script>
";

Возможно, вам, возможно, понадобится избежать $ blob

...