【问题标题】:Upload songs/audio-files to a specific soundcloud account using soundcloud api?使用 soundcloud api 将歌曲/音频文件上传到特定的 soundcloud 帐户?
【发布时间】:2019-05-21 19:08:57
【问题描述】:

我正在编写如下所示的 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 帐户。作为上传歌曲的第一步,我从 soundcloud 开发人员指南 添加了一些脚本(其中 php 代码完成) 从歌曲目录到 soundcloud。

问题陈述:

我想知道我应该在上面的脚本代码中进行哪些更改,以便我们可以将 out_folder 目录中的歌曲/音频文件上传到任何特定的 soundcloud 帐户。任何指针 将不胜感激。

【问题讨论】:

  • 您不需要一个与每个帐户相关联的唯一 API 密钥吗?
  • @cullanrocks 是的,我想是的。我在哪里可以获得链接到每个帐户的唯一 API 密钥?我检查了此链接,但我认为他们不接受任何新注册。 docs.google.com/forms/d/e/…
  • 嗯,好像暂时关闭了。我不确定您是否能够做您目前正在尝试做的任何事情。也许可以联系他们的支持团队,看看他们是否可以在他们改造网站时为您提供 API 密钥。
  • developers.soundcloud.com/docs/api/sdks register a new app 目前不可用。有什么方法可以检索唯一的 API 密钥?
  • 你可以尝试获取客户端ID。不确定它是否有效,您应该对其进行测试,并在此处回复结果。但在那个线程中,他们谈论的是嵌入公开可用的 JSON 数据,而不是上传曲目。即使这一切都奏效了,我敢肯定,除非您拥有这些 client_id,否则您将无法将曲目上传到其他帐户。

标签: javascript php api sdk soundcloud


【解决方案1】:

使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2017-09-07
    相关资源
    最近更新 更多