概要
メディアセットの基本情報を照会および更新する方法については、次の例のとおりです。 SDK のインストール方法および使用方法の詳細については、「メディアライブラリ SDK-PHP」をご参照ください。
メディアセット基本情報の照会
メディア ID または OSS ファイルの URL を使用し、メディアセットを照会します。
- メディア ID を使用したメディアセットの照会
パラメーターの詳細については、「API reference > Media APIs > QueryMediaList」ご参照ください。
include_once 'aliyun-php-sdk-core/Config.php'; use Mts\Request\V20140618 as Mts; $accessKeyID = 'test'; //eplace the value with your AccessKeyID $accessKeySecret = 'test'; //Replace the value with your AccessKeySecret $profile = DefaultProfile::getProfile('cn-hangzhou', $accessKeyID, $accessKeySecret); $client = new DefaultAcsClient($profile);
function queryMediaById($client, $mediaID) { $request = new Mts\QueryMediaListRequest(); $request->setAcceptFormat('JSON'); $request->setMediaIds($mediaID); $response = $client->getAcsResponse($request); return $response; } function printMedia($media) { if (array_key_exists('Title', $media)) { print_r('Title: '.$media->{'Title'}."\n"); } if (array_key_exists('Description', $media)) { print_r('Description: '.$media->{'Description'}."\n"); } if (array_key_exists('Tags', $media)) { print_r('Tags: '.$media->{'Tags'}->{'Tag'}[0]."\n"); } if (array_key_exists('CoverURL', $media)) { print_r('CoverURL: '.$media->{'CoverURL'}."\n"); } print_r('Format: '.$media->{'Format'}."\n"); print_r('Resolution: '.$media->{'Width'}.'x'.$media->{'Height'}."\n"); print_r('FileSize: '.$media->{'Size'}."\n"); print_r('Bitrate: '.$media->{'Bitrate'}."\n"); print_r('FPS: '.$media->{'Fps'}."\n"); } $mediaID = 'test'; // Replace the value with your desired media ID $medias = queryMediaById($client, $mediaID)->{'MediaList'}->{'Media'}; for ($i=0; $i < count($medias); $i++) { printMedia($medias[$i]); }
- OSS ファイルの URL を使用したメディアセットの照会
パラメーターの詳細については、 「API reference > Media APIs > QueryMediaList」をご参照ください。
function queryMediaByURL($client, $mediaURL) { $request = new Mts\QueryMediaListByURLRequest(); $request->setAcceptFormat('JSON'); $request->setFileURLs($mediaURL); $response = $client->getAcsResponse($request); return $response; } $ossEndpoint = 'http://test.oss-cn-hangzhou.aliyuncs.com/'; // An OSS object does not have to start with "/". Replace the value with your OSS object $ossObject = 'test/test.mp4'; $medias = queryMediaByURL($client,$ossEndpoint.urlencode($ossObject))->{'MediaList'}->{'Media'}; for ($i=0; $i < count($medias); $i++) { printMedia($medias[$i]); }
- 属性の更新
全属性の更新、または 1 つの属性を更新することができます。
- 全属性の更新
パラメーターの詳細については、「API reference > Media APIs > UpdateMedia」をご参照ください。
属性を更新する際、すべてのフィールドを指定します。 指定しないフィールドは消去されます。function updateMediaAllField($client, $mediaID, $title, $description, $tags, $coverURL) { $request = new Mts\UpdateMediaRequest(); $request->setAcceptFormat('JSON'); $request->setMediaId($mediaID); $request->setTitle($title); $request->setCateId(2663987); $request->setDescription($description); $request->setTags($tags); $request->setCoverURL($coverURL); $response = $client->getAcsResponse($request); return $response; } $mediaID = 'test'; //Replace the value with your desired media ID $media = updateMediaAllField($client, $mediaID, 'title', 'description', 'tags', 'coverURL')->{'Media'};
- 1 つの属性の更新
各種 API を使用することで、他のフィールドを変更せずに 1 つのフィールドだけを簡単に更新することができます。
次の例では、"updateMediaPublishState" を使用します。 パラメーターの詳細については、 [API reference] > [Media APIs] > [UpdateMediaPublishState] をご参照ください。function updateMediaPublishState($client, $mediaID, $state) { $request = new Mts\UpdateMediaPublishStateRequest(); $request->setAcceptFormat('JSON'); $request->setMediaId($mediaID); $request->setPublish($state); $response = $client->getAcsResponse($request); return $response; } $mediaID = 'test'; //Replace the value with your desired media ID //No result is returned from the API that updates the publishing state. Capture exceptions to check whether execution succeeds try { updateMediaPublishState($client, $mediaID, "true"); } catch(ClientException $e) { print_r('ClientException:'."\n"); print_r($e); } catch (ServerException $e) { print_r('ServerException:'."\n"); print_r($e); }
- 全属性の更新