https://github.com/sbrimon10/streamtape-php-client
A simple PHP client for interacting with the Streamtape API. This client allows you to manage files, retrieve account information, and perform other operations easily via an object-oriented interface.
https://github.com/sbrimon10/streamtape-php-client
api api-client library oop-php php streamtape
Last synced: 10 months ago
JSON representation
A simple PHP client for interacting with the Streamtape API. This client allows you to manage files, retrieve account information, and perform other operations easily via an object-oriented interface.
- Host: GitHub
- URL: https://github.com/sbrimon10/streamtape-php-client
- Owner: sbrimon10
- License: mit
- Created: 2025-02-08T16:51:34.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-02-12T11:23:05.000Z (12 months ago)
- Last Synced: 2025-03-25T12:53:31.181Z (10 months ago)
- Topics: api, api-client, library, oop-php, php, streamtape
- Language: PHP
- Homepage:
- Size: 25.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Streamtape PHP Client
A simple PHP client for interacting with the [Streamtape API](https://www.streamtape.com/). This client allows you to manage files, retrieve account information, and perform other operations easily via an object-oriented interface.
## Features
- [Retrieve Account Information](#get-account-information)
- [Upload](#upload)
- [Remote Upload](#remote-upload)
- [Remove Remote Upload](#remove-remote-upload)
- [Check Remote Upload Status](#check-remote-upload-status)
- [File Info](#get-file-information)
- [List Folder/Files](#list-files)
- [Create Folder](#create-new-folder)
- [Rename Folder](#rename-folder)
- [Delete Folder](#delete-folder)
- [Rename File](#rename-file)
- [Move File](#move-file)
- [Delete File](#delete-file)
- [Lists Running Conversions](#running-converts)
- [Lists Failed Conversions](#failed-converts)
- [Get Thumbnail Image](#get-thumbnail-image)
## Installation
You can install this library either by using Composer or by manually downloading the files.
### 1. Using Composer (recommended)
If you are using Composer, you can add this repository to your `composer.json`:
```bash
composer require sbrimon/streamtape-php-client
```
### 2. Manual Installation
If you prefer to manually install, download the `Streamtape.php` file and include it in your project like this:
```php
require_once 'path/to/Streamtape.php';
```
## Usage
### Initialization
To use the client, you need to initialize the `Streamtape` class with your Streamtape credentials: your login and API key.
```php
// Include the Streamtape class
require_once 'path/to/Streamtape.php';
// Initialize with your Streamtape login and API key
//login= API-Login
//key= API-Key / API-Password
$streamtape = new Streamtape('your_login', 'your_api_key');
```
### Get Account Information
You can retrieve your account information (such as email) by calling the `AccountInfo()` method.
```php
// Get account information
$AccountInfo = $streamtape->AccountInfo()->toArray();
echo "Email: " . $AccountInfo['email'] . "\n";
```
### Upload
To upload a file, use the `Upload()` method. You can pass a file, and optionally specify the folder, file name, and SHA256 hash.
```php
// File to upload (using $_FILES array)
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$file = $_FILES['file']; // Ensure 'file' is from an HTML form
$upload = $streamtape->Upload($file,'my video title.mp4','folderid'); //video name and folder id are optional.
///json return
echo "Upload Response: " . $upload->json();
//or
//Array Return
print_r($upload->toArray());
}
```
### Remote Upload
To add a remote upload, use the `RemoteUpload()` method by providing a remote URL and optional parameters like folder, custom name, and headers.
```php
// Add a remote upload from a URL
$streamtape->RemoteUpload('https://example.com/myfile.mp4');
echo "Remote Upload Response: " . $streamtape->json();
```
### Remove Remote Upload
To remove a remote upload (or all), call the `RemoveRemoteUpload()` method and pass the remote upload ID or 'all' to delete all.
```php
// Remove a specific remote upload
$streamtape->RemoveRemoteUpload('remote_upload_id');
echo "Remote Upload Removal: " . $streamtape->json();
```
### Check Remote Upload Status
To check the status of a remote upload, use the `RemoteUploadStatus()` method by providing the remote upload ID.
```php
// Check remote upload status
$streamtape->RemoteUploadStatus('remote_upload_id');
echo "Remote Upload Status: " . $streamtape->json();
```
### Get File Information
To retrieve file information, use the `FileInfo()` method with the file ID.
```php
// Get file information
$fileInfo = $streamtape->FileInfo('file_id');
echo "File Info: " . $fileInfo->json();//json data return
echo "File Info: " . print_r($fileInfo->toArray());//array data return
```
### List Files
You can list files in a specific folder using the `ListFiles()` method.
```php
// List files in a folder
$files = $streamtape->ListFiles('folder_id');
echo "Files: " . $files->json();
```
### Create New Folder
To create a new folder, use the `NewFolder()` method and specify the folder name (and optionally the parent folder ID).
```php
// Create a new folder
$streamtape->NewFolder('new_folder_name');
echo "Folder Creation Response: " . $streamtape->json();
```
### Rename Folder
To rename an existing folder, use the `RenameFolder()` method by providing the folder ID and the new folder name.
```php
// Rename a folder
$streamtape->RenameFolder('folder_id', 'new_folder_name');
echo "Folder Rename Response: " . $streamtape->json();
```
### Delete Folder
To delete a folder, use the `DeleteFolder()` method by providing the folder ID.
```php
// Delete a folder
$streamtape->DeleteFolder('folder_id');
echo "Folder Deletion Response: " . $streamtape->json();
```
### Rename File
To rename a file, use the `RenameFile()` method and provide the file ID and new file name.
```php
// Rename a file
$streamtape->RenameFile('file_id', 'new_file_name');
echo "File Rename Response: " . $streamtape->json();
```
### Move File
You can move a file to a different folder with the `MoveFile()` method, by providing the file ID and the target folder ID.
```php
// Move a file to a folder
$streamtape->MoveFile('file_id', 'folder_id');
echo "File Move Response: " . $streamtape->json();
```
### Delete File
To delete a file, use the `DeleteFile()` method with the file ID.
```php
// Delete a file
$streamtape->DeleteFile('file_id');
echo "File Deletion Response: " . $streamtape->json();
```
### Lists Running Conversions
You can retrieve a list of running conversions using the `RunningConverts()` method.
```php
// Get running conversions
$streamtape->RunningConverts();
echo "Running Conversions: " . $streamtape->json();
```
### Lists Failed Conversions
To list all failed conversions, use the `FailedConverts()` method.
```php
// Get failed conversions
$streamtape->FailedConverts();
echo "Failed Conversions: " . $streamtape->json();
```
### Get Thumbnail Image
To retrieve a thumbnail image for a specific file, use the `Thumbnail()` method and provide the file ID.
```php
// Get thumbnail image for a file
$streamtape->Thumbnail('file_id');
echo "Thumbnail: " . $streamtape->json(); //$streamtape->toArray();
```
### Available Methods
#### 0. `json()` or `toArray()`
- those method return you json or array type data. you can use whichever you want to use
- **Example**
- `$streamtape->ListFiles()->toArray(); //this will return array data.`
- `$streamtape->ListFiles()->json(); //this will return json data.`
#### 1. `AccountInfo()`
- **Parameters**: None
---
#### 2. `FileInfo($fileId)`
- **Parameters**:
- `$fileId` (required): The file ID to retrieve information for.
---
#### 3. `ListFiles($folder = null)`
- **Parameters**:
- `$folder` (optional): Folder ID to list files from. If not provided, lists files from the root.
---
#### 4. NewFolder($name, $pid = null)
- **Parameters**:
- `$name` (required): The name of the new folder to be created.
- `$pid` (optional): Parent folder ID (if creating inside another folder).
---
#### 5. `RenameFolder($folder, $name)`
- **Parameters**:
- `$folder` (required): The folder ID to rename.
- `$name` (required): The new name for the folder.
---
#### 6. `DeleteFolder($folder)`
- **Parameters**:
- `$folder` (required): The folder ID to delete.
---
#### 7. `RenameFile($file, $name)`
- **Parameters**:
- `$file` (required): The file ID to rename.
- `$name` (required): The new name for the file.
---
#### 8. `MoveFile($file, $folder)`
- **Parameters**:
- `$file` (required): The file ID to move.
- `$folder` (required): The folder ID to move the file to.
---
#### 9. `DeleteFile($file)`
- **Parameters**:
- `$file` (required): The file ID to delete.
---
#### 10. `RunningConverts()`
- **Parameters**: None
---
#### 11. `FailedConverts()`
- **Parameters**: None
---
#### 12. `Thumbnail($file)`
- **Parameters**:
- `$file` (required): The file ID to get the thumbnail for.
---
#### 13. `RemoteUpload($url, $folder = null, $name = null, $headers = null)`
- **Parameters**:
- `$url` (required): The remote URL to upload.
- `$folder` (optional): The folder ID to upload the file to.
- `$name` (optional): A custom name for the uploaded file.
- `$headers` (optional): Additional HTTP headers for the request.
---
#### 14. `RemoveRemoteUpload($id)`
- **Parameters**:
- `$id` (required): The remote upload ID to remove. Pass 'all' to remove all remote uploads.
---
#### 15. `RemoteUploadStatus($id)`
- **Parameters**:
- `$id` (required): The remote upload ID to check the status of.
---
#### 16. `Upload($videoFile, $fileName = null, $folder = null, $sha256 = null, $httponly = null)`
- **Parameters**:
- `$videoFile` (required): The file to upload (passed in a `$_FILES` array).
- `$fileName` (optional): The desired file name on Streamtape.
- `$folder` (optional): The folder ID to upload the file to.
- `$sha256` (optional): The SHA256 hash of the file to upload.
- `$httponly` (optional): Whether or not to make the file available via HTTP only.
For additional API methods, refer to the [Streamtape API documentation](https://www.streamtape.com/docs).
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
### Key Points:
- The **installation** section explains how to install via Composer or manually.
- The **usage** section covers initializing the client, getting account info, listing files, retrieving file info, and handling errors.
- The **example usage** section shows a real-world example.
- The **methods** section lists the available API methods you can use.
This README provides a complete and user-friendly guide for anyone who wants to use my PHP Streamtape client!