The Swift Package Index logo.Swift Package Index

Build Information

Successful build of YouTubeKit, reference main (7f75a2), with Swift 6.2 for macOS (SPM) on 2 Nov 2026 09:55:21 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.4
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/alexeichhorn/YouTubeKit.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/alexeichhorn/YouTubeKit
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 7f75a22 Merge pull request #150 from alexeichhorn/feature/preroll-wait
Cloned https://github.com/alexeichhorn/YouTubeKit.git
Revision (git rev-parse @):
7f75a2299dc329c0b7855afb25d47663a02855cb
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/alexeichhorn/YouTubeKit.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/alexeichhorn/YouTubeKit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64
Building for debugging...
[0/5] Write sources
[1/5] Copying meriyah.umd.js
[1/5] Copying astring.umd.js
[1/5] Copying yt_ejs_helper.js
[4/5] Write swift-version--3CB7CFEC50E0D141.txt
[6/33] Emitting module YouTubeKit
[7/36] Compiling YouTubeKit Concurrency.swift
[8/36] Compiling YouTubeKit Foundation.swift
[9/36] Compiling YouTubeKit Lazy.swift
[10/36] Compiling YouTubeKit Chunking.swift
[11/36] Compiling YouTubeKit RemoteStream.swift
[12/36] Compiling YouTubeKit RemoteYouTubeClient.swift
[13/36] Compiling YouTubeKit Logging.swift
[14/36] Compiling YouTubeKit RegularExpression.swift
[15/36] Compiling YouTubeKit Retry.swift
[16/36] Compiling YouTubeKit SignatureSolver.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTube.swift:356:19: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
354 |                 do {
355 |                     return nil //try await Extraction.getVideoInfo(fromHTML: watchHTML)  // (temporarily disabled)
356 |                 } catch let error {
    |                   `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
357 |                     os_log("Couldn't extract video info from main watch html: %{public}@", log: log, type: .debug, error.localizedDescription)
358 |                     return nil
[17/36] Compiling YouTubeKit YouTube.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTube.swift:356:19: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
354 |                 do {
355 |                     return nil //try await Extraction.getVideoInfo(fromHTML: watchHTML)  // (temporarily disabled)
356 |                 } catch let error {
    |                   `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
357 |                     os_log("Couldn't extract video info from main watch html: %{public}@", log: log, type: .debug, error.localizedDescription)
358 |                     return nil
[18/36] Compiling YouTubeKit resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTube.swift:356:19: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
354 |                 do {
355 |                     return nil //try await Extraction.getVideoInfo(fromHTML: watchHTML)  // (temporarily disabled)
356 |                 } catch let error {
    |                   `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
357 |                     os_log("Couldn't extract video info from main watch html: %{public}@", log: log, type: .debug, error.localizedDescription)
358 |                     return nil
[19/36] Compiling YouTubeKit Cipher.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Extensions/AsyncCompatibility.swift:45:87: warning: passing non-Sendable parameter '$0' to function expecting a '@Sendable' closure
43 |
44 |     func data(from url: URL) async throws -> (Data, URLResponse) {
45 |         try await performCancellableDataTask { dataTask(with: url, completionHandler: $0) }
   |                                              |                                        `- warning: passing non-Sendable parameter '$0' to function expecting a '@Sendable' closure
   |                                              `- note: parameter '$0' is implicitly non-Sendable
46 |     }
47 |
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Extensions/AsyncCompatibility.swift:49:91: warning: passing non-Sendable parameter '$0' to function expecting a '@Sendable' closure
47 |
48 |     func data(for request: URLRequest) async throws -> (Data, URLResponse) {
49 |         try await performCancellableDataTask { dataTask(with: request, completionHandler: $0) }
   |                                              |                                            `- warning: passing non-Sendable parameter '$0' to function expecting a '@Sendable' closure
   |                                              `- note: parameter '$0' is implicitly non-Sendable
50 |     }
51 |
[20/36] Compiling YouTubeKit Errors.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Extensions/AsyncCompatibility.swift:45:87: warning: passing non-Sendable parameter '$0' to function expecting a '@Sendable' closure
43 |
44 |     func data(from url: URL) async throws -> (Data, URLResponse) {
45 |         try await performCancellableDataTask { dataTask(with: url, completionHandler: $0) }
   |                                              |                                        `- warning: passing non-Sendable parameter '$0' to function expecting a '@Sendable' closure
   |                                              `- note: parameter '$0' is implicitly non-Sendable
46 |     }
47 |
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Extensions/AsyncCompatibility.swift:49:91: warning: passing non-Sendable parameter '$0' to function expecting a '@Sendable' closure
47 |
48 |     func data(for request: URLRequest) async throws -> (Data, URLResponse) {
49 |         try await performCancellableDataTask { dataTask(with: request, completionHandler: $0) }
   |                                              |                                            `- warning: passing non-Sendable parameter '$0' to function expecting a '@Sendable' closure
   |                                              `- note: parameter '$0' is implicitly non-Sendable
50 |     }
51 |
[21/36] Compiling YouTubeKit AsyncCompatibility.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Extensions/AsyncCompatibility.swift:45:87: warning: passing non-Sendable parameter '$0' to function expecting a '@Sendable' closure
43 |
44 |     func data(from url: URL) async throws -> (Data, URLResponse) {
45 |         try await performCancellableDataTask { dataTask(with: url, completionHandler: $0) }
   |                                              |                                        `- warning: passing non-Sendable parameter '$0' to function expecting a '@Sendable' closure
   |                                              `- note: parameter '$0' is implicitly non-Sendable
46 |     }
47 |
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Extensions/AsyncCompatibility.swift:49:91: warning: passing non-Sendable parameter '$0' to function expecting a '@Sendable' closure
47 |
48 |     func data(for request: URLRequest) async throws -> (Data, URLResponse) {
49 |         try await performCancellableDataTask { dataTask(with: request, completionHandler: $0) }
   |                                              |                                            `- warning: passing non-Sendable parameter '$0' to function expecting a '@Sendable' closure
   |                                              `- note: parameter '$0' is implicitly non-Sendable
50 |     }
51 |
[22/36] Compiling YouTubeKit YouTubeMetadata.swift
[23/36] Compiling YouTubeKit Parser.swift
[24/36] Compiling YouTubeKit AppIdentity.swift
[25/36] Compiling YouTubeKit Method.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:48:15: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 46 |
 47 |         let codecs: [String]
 48 |         (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
    |               `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 49 |
 50 |         let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:50:39: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 48 |         (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
 49 |
 50 |         let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
    |                                       `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 51 |         self.type = mimeTypeComponents.first ?? ""
 52 |         self.subtype = mimeTypeComponents[safe: 1] ?? ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:51:14: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 49 |
 50 |         let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
 51 |         self.type = mimeTypeComponents.first ?? ""
    |              `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 52 |         self.subtype = mimeTypeComponents[safe: 1] ?? ""
 53 |
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:52:14: warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 50 |         let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
 51 |         self.type = mimeTypeComponents.first ?? ""
 52 |         self.subtype = mimeTypeComponents[safe: 1] ?? ""
    |              `- warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 53 |
 54 |         self.fileExtension = FileExtension(mimeType: self.mimeType)
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:54:59: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 52 |         self.subtype = mimeTypeComponents[safe: 1] ?? ""
 53 |
 54 |         self.fileExtension = FileExtension(mimeType: self.mimeType)
    |                                                           `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 55 |
 56 |         // codec decoding
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:61:21: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 59 |             self.audioCodec = AudioCodec(rawValue: codecs[1])
 60 |         } else if let codec = codecs.first {
 61 |             if self.type == "audio" {
    |                     `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 62 |                 self.audioCodec = AudioCodec(rawValue: codec)
 63 |                 self.videoCodec = nil
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:102:14: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
100 |
101 |         // Backward compatibility for deprecated `subtype` and `mimeType`
102 |         self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
    |              `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
103 |         self.subtype = ""
104 |         self.mimeType = ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:103:14: warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
101 |         // Backward compatibility for deprecated `subtype` and `mimeType`
102 |         self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
103 |         self.subtype = ""
    |              `- warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
104 |         self.mimeType = ""
105 |     }
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:104:14: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
102 |         self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
103 |         self.subtype = ""
104 |         self.mimeType = ""
    |              `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
105 |     }
106 |
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[26/36] Compiling YouTubeKit Stream.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:48:15: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 46 |
 47 |         let codecs: [String]
 48 |         (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
    |               `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 49 |
 50 |         let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:50:39: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 48 |         (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
 49 |
 50 |         let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
    |                                       `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 51 |         self.type = mimeTypeComponents.first ?? ""
 52 |         self.subtype = mimeTypeComponents[safe: 1] ?? ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:51:14: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 49 |
 50 |         let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
 51 |         self.type = mimeTypeComponents.first ?? ""
    |              `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 52 |         self.subtype = mimeTypeComponents[safe: 1] ?? ""
 53 |
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:52:14: warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 50 |         let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
 51 |         self.type = mimeTypeComponents.first ?? ""
 52 |         self.subtype = mimeTypeComponents[safe: 1] ?? ""
    |              `- warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 53 |
 54 |         self.fileExtension = FileExtension(mimeType: self.mimeType)
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:54:59: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 52 |         self.subtype = mimeTypeComponents[safe: 1] ?? ""
 53 |
 54 |         self.fileExtension = FileExtension(mimeType: self.mimeType)
    |                                                           `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 55 |
 56 |         // codec decoding
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:61:21: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 59 |             self.audioCodec = AudioCodec(rawValue: codecs[1])
 60 |         } else if let codec = codecs.first {
 61 |             if self.type == "audio" {
    |                     `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 62 |                 self.audioCodec = AudioCodec(rawValue: codec)
 63 |                 self.videoCodec = nil
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:102:14: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
100 |
101 |         // Backward compatibility for deprecated `subtype` and `mimeType`
102 |         self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
    |              `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
103 |         self.subtype = ""
104 |         self.mimeType = ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:103:14: warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
101 |         // Backward compatibility for deprecated `subtype` and `mimeType`
102 |         self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
103 |         self.subtype = ""
    |              `- warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
104 |         self.mimeType = ""
105 |     }
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:104:14: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
102 |         self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
103 |         self.subtype = ""
104 |         self.mimeType = ""
    |              `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
105 |     }
106 |
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[27/36] Compiling YouTubeKit StreamQuery.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:48:15: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 46 |
 47 |         let codecs: [String]
 48 |         (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
    |               `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 49 |
 50 |         let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:50:39: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 48 |         (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
 49 |
 50 |         let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
    |                                       `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 51 |         self.type = mimeTypeComponents.first ?? ""
 52 |         self.subtype = mimeTypeComponents[safe: 1] ?? ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:51:14: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 49 |
 50 |         let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
 51 |         self.type = mimeTypeComponents.first ?? ""
    |              `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 52 |         self.subtype = mimeTypeComponents[safe: 1] ?? ""
 53 |
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:52:14: warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 50 |         let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
 51 |         self.type = mimeTypeComponents.first ?? ""
 52 |         self.subtype = mimeTypeComponents[safe: 1] ?? ""
    |              `- warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 53 |
 54 |         self.fileExtension = FileExtension(mimeType: self.mimeType)
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:54:59: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 52 |         self.subtype = mimeTypeComponents[safe: 1] ?? ""
 53 |
 54 |         self.fileExtension = FileExtension(mimeType: self.mimeType)
    |                                                           `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 55 |
 56 |         // codec decoding
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:61:21: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 59 |             self.audioCodec = AudioCodec(rawValue: codecs[1])
 60 |         } else if let codec = codecs.first {
 61 |             if self.type == "audio" {
    |                     `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
 62 |                 self.audioCodec = AudioCodec(rawValue: codec)
 63 |                 self.videoCodec = nil
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:102:14: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
100 |
101 |         // Backward compatibility for deprecated `subtype` and `mimeType`
102 |         self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
    |              `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
103 |         self.subtype = ""
104 |         self.mimeType = ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:103:14: warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
101 |         // Backward compatibility for deprecated `subtype` and `mimeType`
102 |         self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
103 |         self.subtype = ""
    |              `- warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
104 |         self.mimeType = ""
105 |     }
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:104:14: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
102 |         self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
103 |         self.subtype = ""
104 |         self.mimeType = ""
    |              `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
105 |     }
106 |
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[28/36] Compiling YouTubeKit URLSessionDelegates.swift
[29/36] Compiling YouTubeKit WebSocket.swift
[30/36] Compiling YouTubeKit Extraction.swift
[31/36] Compiling YouTubeKit InnerTube+PrerollAds.swift
[32/36] Compiling YouTubeKit InnerTube.swift
[33/36] Compiling YouTubeKit Codecs.swift
[34/36] Compiling YouTubeKit FileExtension.swift
[35/36] Compiling YouTubeKit ITag.swift
[36/36] Compiling YouTubeKit Livestream.swift
Build complete! (8.06s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "YouTubeKit",
  "name" : "YouTubeKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "YouTubeKit",
      "targets" : [
        "YouTubeKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "YouTubeKitTests",
      "module_type" : "SwiftTarget",
      "name" : "YouTubeKitTests",
      "path" : "Tests/YouTubeKitTests",
      "sources" : [
        "CipherTests.swift",
        "ExtensionTests.swift",
        "Extensions.swift",
        "ExtractionTests.swift",
        "ITagsTests.swift",
        "NSigTests.swift",
        "ParserTests.swift",
        "PlayabilityTests.swift",
        "SignatureTests.swift",
        "YouTubeKitTests.swift"
      ],
      "target_dependencies" : [
        "YouTubeKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "YouTubeKit",
      "module_type" : "SwiftTarget",
      "name" : "YouTubeKit",
      "path" : "Sources/YouTubeKit",
      "product_memberships" : [
        "YouTubeKit"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Resources/astring.umd.js",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Resources/meriyah.umd.js",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Resources/yt_ejs_helper.js",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Cipher.swift",
        "Errors.swift",
        "Extensions/AsyncCompatibility.swift",
        "Extensions/Concurrency.swift",
        "Extensions/Foundation.swift",
        "Extensions/Lazy.swift",
        "Extensions/Logging.swift",
        "Extensions/RegularExpression.swift",
        "Extensions/Retry.swift",
        "Extensions/URLSessionDelegates.swift",
        "Extensions/WebSocket.swift",
        "Extraction.swift",
        "InnerTube+PrerollAds.swift",
        "InnerTube.swift",
        "Models/Codecs.swift",
        "Models/FileExtension.swift",
        "Models/ITag.swift",
        "Models/Livestream.swift",
        "Models/Method.swift",
        "Models/Stream.swift",
        "Models/StreamQuery.swift",
        "Models/YouTubeMetadata.swift",
        "Parser.swift",
        "Remote/AppIdentity.swift",
        "Remote/Chunking.swift",
        "Remote/Models/RemoteStream.swift",
        "Remote/RemoteYouTubeClient.swift",
        "SignatureSolver.swift",
        "YouTube.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.