csai_sdk 0.4.0 copy "csai_sdk: ^0.4.0" to clipboard
csai_sdk: ^0.4.0 copied to clipboard

Client-Side Ad Insertion (CSAI) SDK for Flutter with VAST 4.0 support, HLS/MPEG-DASH streaming, and seamless ad insertion.

example/lib/main.dart

/// ๐ŸŽฏ MostMedia CS SDK - เธ—เธ”เธชเธญเธšเธ”เน‰เธงเธข Credentials เธ—เธตเนˆเธ–เธนเธเธ•เน‰เธญเธ‡
/// 
/// Repository: https://sdk-dai.mmcore.net/repository/maven
/// Username: dsc
/// Password: p7vQRa8hF

import 'package:http/http.dart' as http;
import 'dart:convert';

class MostMediaSDKTest {
  
  static const String REPO_URL = 'https://sdk-dai.mmcore.net/repository/maven';
  static const String USERNAME = 'dsc';
  static const String PASSWORD = 'p7vQRa8hF';

  /// ๐Ÿ” Test 1: เธ—เธ”เธชเธญเธšเธชเธฒเธกเธฒเธฃเธ–เน€เธ‚เน‰เธฒเธ–เธถเธ‡ Repository เน„เธ”เน‰เน„เธซเธก
  static Future<bool> testRepositoryAccess() async {
    try {
      print('\n๐Ÿ“ฆ Test 1: เธ•เธฃเธงเธˆเธชเธญเธš Repository Access');
      print('โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€');
      print('URL: $REPO_URL');

      final credentials = base64Encode(utf8.encode('$USERNAME:$PASSWORD'));
      final headers = {
        'Authorization': 'Basic $credentials',
      };

      final response = await http.get(
        Uri.parse(REPO_URL),
        headers: headers,
      ).timeout(Duration(seconds: 10));

      print('Status: ${response.statusCode}');

      if (response.statusCode == 200 || response.statusCode == 301 || response.statusCode == 302) {
        print('โœ… Repository accessible!');
        return true;
      } else {
        print('โŒ Error: ${response.statusCode}');
        print('Body: ${response.body.substring(0, 200)}...');
        return false;
      }

    } catch (e) {
      print('โŒ Error: $e');
      return false;
    }
  }

  /// ๐Ÿ” Test 2: เธ„เน‰เธ™เธซเธฒ csai_sdk artifact
  static Future<bool> findCsaiSdk() async {
    try {
      print('\n๐Ÿ“ฆ Test 2: เธ„เน‰เธ™เธซเธฒ csai_sdk Artifact');
      print('โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€');

      final credentials = base64Encode(utf8.encode('$USERNAME:$PASSWORD'));
      final headers = {
        'Authorization': 'Basic $credentials',
      };

      // เธฅเธญเธ‡เธ„เน‰เธ™เธซเธฒเนƒเธ™เน„เธ”เน€เธฃเธเธ—เธญเธฃเธตเนˆ repository
      final paths = [
        '/content/repositories/releases/com/mostmedia/',
        '/content/repositories/releases/com/mostmedia/csai_sdk/',
        '/content/repositories/releases/',
        '/content/repositories/public/com/mostmedia/',
      ];

      for (String path in paths) {
        print('๐Ÿ“‚ เธฅเธญเธ‡เน€เธชเน‰เธ™เธ—เธฒเธ‡: $path');
        
        try {
          final response = await http.get(
            Uri.parse('$REPO_URL$path'),
            headers: headers,
          ).timeout(Duration(seconds: 5));

          print('   Status: ${response.statusCode}');

          if (response.statusCode == 200) {
            print('   โœ… เธžเธšเน€เธชเน‰เธ™เธ—เธฒเธ‡!');
            print('   Response snippet: ${response.body.substring(0, 300)}...\n');
            return true;
          }
        } catch (e) {
          print('   Error: $e\n');
          continue;
        }
      }

      print('โŒ เน„เธกเนˆเธžเธš artifact');
      return false;

    } catch (e) {
      print('โŒ Error: $e');
      return false;
    }
  }

  /// ๐Ÿ” Test 3: เธ„เน‰เธ™เธซเธฒ CSAI Service Core Endpoint
  static Future<Map<String, dynamic>?> findCsaiEndpoint() async {
    try {
      print('\n๐ŸŒ Test 3: เธ„เน‰เธ™เธซเธฒ CSAI Service Core Endpoint');
      print('โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€');

      // เธฅเธญเธ‡เน€เธชเน‰เธ™เธ—เธฒเธ‡ API เธ—เธฑเนˆเธงเน„เธ›
      final possibleUrls = [
        'https://mmcore.net/api/csai/generateAdRequest',
        'https://api.mmcore.net/csai/request',
        'https://mmcore.net/csai/request',
        'https://mmcore.net/adserver',
        'https://csai.mmcore.net/request',
        'https://mmcore.net/api/v1/ads',
      ];

      final credentials = base64Encode(utf8.encode('$USERNAME:$PASSWORD'));
      final headers = {
        'Authorization': 'Basic $credentials',
        'Content-Type': 'application/json',
      };

      for (String url in possibleUrls) {
        print('๐Ÿ”— เธฅเธญเธ‡เธ—เธตเนˆ: $url');

        try {
          final testData = {
            'deviceId': 'test_device',
            'operatorId': 'test_operator',
            'duration': 60,
          };

          final response = await http.post(
            Uri.parse(url),
            headers: headers,
            body: jsonEncode(testData),
          ).timeout(Duration(seconds: 5));

          print('   Status: ${response.statusCode}');

          if (response.statusCode == 200 || response.statusCode == 201) {
            print('   โœ… Response received!');
            print('   Body: ${response.body.substring(0, 300)}...\n');
            return {'url': url, 'status': response.statusCode};
          }
        } catch (e) {
          print('   Error: $e\n');
          continue;
        }
      }

      print('โŒ เน„เธกเนˆเธžเธš endpoint');
      return null;

    } catch (e) {
      print('โŒ Error: $e');
      return null;
    }
  }

  /// ๐Ÿ” Test 4: เธ•เธฃเธงเธˆเธชเธญเธš SDK Configuration
  static Future<void> testSdkConfiguration() async {
    try {
      print('\nโš™๏ธ Test 4: เธ•เธฃเธงเธˆเธชเธญเธš SDK Configuration');
      print('โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€');

      print('Repository URL: $REPO_URL');
      print('Username: $USERNAME');
      print('Password: ${PASSWORD.replaceAll(RegExp(r'.'), '*')}');
      
      final credentials = base64Encode(utf8.encode('$USERNAME:$PASSWORD'));
      print('Basic Auth: Basic ${credentials.substring(0, 20)}...');
      
      print('โœ… Configuration ready');

    } catch (e) {
      print('โŒ Error: $e');
    }
  }

  /// ๐Ÿš€ เธฃเธฑเธ™ Tests เธ—เธฑเน‰เธ‡เธซเธกเธ”
  static Future<void> runAllTests() async {
    print('\n\n');
    print('โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—');
    print('โ•‘  ๐ŸŽฌ MostMedia CS SDK Test with Correct Credentials ๐ŸŽฌ    โ•‘');
    print('โ•‘  Repository: https://sdk-dai.mmcore.net/                 โ•‘');
    print('โ•‘  Username: dsc                                            โ•‘');
    print('โ•‘  Password: p7vQRa8hF                                      โ•‘');
    print('โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•');

    // Test 1
    final test1 = await testRepositoryAccess();

    // Test 2
    if (test1) {
      await findCsaiSdk();
    }

    // Test 3
    await findCsaiEndpoint();

    // Test 4
    await testSdkConfiguration();

    print('\n\n');
    print('โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—');
    print('โ•‘  โœ… Tests Completed                                       โ•‘');
    print('โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•');
  }
}

void main() async {
  await MostMediaSDKTest.runAllTests();
}
0
likes
140
points
96
downloads

Publisher

unverified uploader

Weekly Downloads

Client-Side Ad Insertion (CSAI) SDK for Flutter with VAST 4.0 support, HLS/MPEG-DASH streaming, and seamless ad insertion.

Repository (GitHub)
View/report issues

Documentation

API reference

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on csai_sdk

Packages that implement csai_sdk