Build Information
Successful build of YouTubeKit, reference 0.4.9 (e5b7d0), with Swift 6.3 for macOS (SPM) on 18 Aug 2026 21:51:16 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.5.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.0.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/alexeichhorn/YouTubeKit.git
Reference: 0.4.9
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/alexeichhorn/YouTubeKit
* tag 0.4.9 -> FETCH_HEAD
HEAD is now at e5b7d03 Merge pull request #140 from alexeichhorn/fix/youtube-august-26
Cloned https://github.com/alexeichhorn/YouTubeKit.git
Revision (git rev-parse @):
e5b7d0396ce12bf3444f0d209e8436c83373b7af
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/alexeichhorn/YouTubeKit.git at 0.4.9
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"traits": [
"default"
],
"dependencies": [
{
"identity": "youtubekit",
"name": "YouTubeKit",
"url": "https://github.com/alexeichhorn/YouTubeKit.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/YouTubeKit",
"traits": [
"default"
],
"dependencies": [
]
}
]
}
Fetching https://github.com/alexeichhorn/YouTubeKit.git
[1/2043] Fetching youtubekit
Fetched https://github.com/alexeichhorn/YouTubeKit.git from cache (1.10s)
Creating working copy for https://github.com/alexeichhorn/YouTubeKit.git
Working copy of https://github.com/alexeichhorn/YouTubeKit.git resolved at 0.4.9 (e5b7d03)
warning: '.resolve-product-dependencies': dependency 'youtubekit' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.3
Building package at path: $PWD
https://github.com/alexeichhorn/YouTubeKit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.5.0.app xcrun swift build --arch arm64
Building for debugging...
[0/5] Write sources
[0/5] Copying yt_ejs_helper.js
[1/5] Copying astring.umd.js
[2/5] Copying meriyah.umd.js
[4/5] Write swift-version-69A768CDF2A0BEE1.txt
[6/33] Compiling YouTubeKit Concurrency.swift
[7/33] Compiling YouTubeKit Foundation.swift
[8/33] Compiling YouTubeKit Lazy.swift
[9/35] Compiling YouTubeKit ITag.swift
[10/35] Compiling YouTubeKit Livestream.swift
[11/35] Compiling YouTubeKit Method.swift
[12/35] Compiling YouTubeKit Stream.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:44:15: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
42 |
43 | let codecs: [String]
44 | (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]
45 |
46 | let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:46:39: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
44 | (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
45 |
46 | 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]
47 | self.type = mimeTypeComponents.first ?? ""
48 | self.subtype = mimeTypeComponents[safe: 1] ?? ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:47:14: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
45 |
46 | let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
47 | self.type = mimeTypeComponents.first ?? ""
| `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
48 | self.subtype = mimeTypeComponents[safe: 1] ?? ""
49 |
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:48:14: warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
46 | let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
47 | self.type = mimeTypeComponents.first ?? ""
48 | self.subtype = mimeTypeComponents[safe: 1] ?? ""
| `- warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
49 |
50 | self.fileExtension = FileExtension(mimeType: self.mimeType)
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:50:59: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
48 | self.subtype = mimeTypeComponents[safe: 1] ?? ""
49 |
50 | 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]
51 |
52 | // codec decoding
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:57:21: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
55 | self.audioCodec = AudioCodec(rawValue: codecs[1])
56 | } else if let codec = codecs.first {
57 | if self.type == "audio" {
| `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
58 | self.audioCodec = AudioCodec(rawValue: codec)
59 | self.videoCodec = nil
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:94:14: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
92 |
93 | // Backward compatibility for deprecated `subtype` and `mimeType`
94 | 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]
95 | self.subtype = ""
96 | self.mimeType = ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:95:14: warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
93 | // Backward compatibility for deprecated `subtype` and `mimeType`
94 | self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
95 | self.subtype = ""
| `- warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
96 | self.mimeType = ""
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:96:14: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
94 | self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
95 | self.subtype = ""
96 | self.mimeType = ""
| `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
97 | }
98 |
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[13/35] Compiling YouTubeKit StreamQuery.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:44:15: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
42 |
43 | let codecs: [String]
44 | (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]
45 |
46 | let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:46:39: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
44 | (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
45 |
46 | 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]
47 | self.type = mimeTypeComponents.first ?? ""
48 | self.subtype = mimeTypeComponents[safe: 1] ?? ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:47:14: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
45 |
46 | let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
47 | self.type = mimeTypeComponents.first ?? ""
| `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
48 | self.subtype = mimeTypeComponents[safe: 1] ?? ""
49 |
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:48:14: warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
46 | let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
47 | self.type = mimeTypeComponents.first ?? ""
48 | self.subtype = mimeTypeComponents[safe: 1] ?? ""
| `- warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
49 |
50 | self.fileExtension = FileExtension(mimeType: self.mimeType)
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:50:59: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
48 | self.subtype = mimeTypeComponents[safe: 1] ?? ""
49 |
50 | 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]
51 |
52 | // codec decoding
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:57:21: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
55 | self.audioCodec = AudioCodec(rawValue: codecs[1])
56 | } else if let codec = codecs.first {
57 | if self.type == "audio" {
| `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
58 | self.audioCodec = AudioCodec(rawValue: codec)
59 | self.videoCodec = nil
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:94:14: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
92 |
93 | // Backward compatibility for deprecated `subtype` and `mimeType`
94 | 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]
95 | self.subtype = ""
96 | self.mimeType = ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:95:14: warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
93 | // Backward compatibility for deprecated `subtype` and `mimeType`
94 | self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
95 | self.subtype = ""
| `- warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
96 | self.mimeType = ""
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:96:14: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
94 | self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
95 | self.subtype = ""
96 | self.mimeType = ""
| `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
97 | }
98 |
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[14/35] Compiling YouTubeKit YouTubeMetadata.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:44:15: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
42 |
43 | let codecs: [String]
44 | (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]
45 |
46 | let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:46:39: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
44 | (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
45 |
46 | 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]
47 | self.type = mimeTypeComponents.first ?? ""
48 | self.subtype = mimeTypeComponents[safe: 1] ?? ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:47:14: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
45 |
46 | let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
47 | self.type = mimeTypeComponents.first ?? ""
| `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
48 | self.subtype = mimeTypeComponents[safe: 1] ?? ""
49 |
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:48:14: warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
46 | let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
47 | self.type = mimeTypeComponents.first ?? ""
48 | self.subtype = mimeTypeComponents[safe: 1] ?? ""
| `- warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
49 |
50 | self.fileExtension = FileExtension(mimeType: self.mimeType)
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:50:59: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
48 | self.subtype = mimeTypeComponents[safe: 1] ?? ""
49 |
50 | 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]
51 |
52 | // codec decoding
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:57:21: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
55 | self.audioCodec = AudioCodec(rawValue: codecs[1])
56 | } else if let codec = codecs.first {
57 | if self.type == "audio" {
| `- warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
58 | self.audioCodec = AudioCodec(rawValue: codec)
59 | self.videoCodec = nil
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:94:14: warning: 'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
92 |
93 | // Backward compatibility for deprecated `subtype` and `mimeType`
94 | 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]
95 | self.subtype = ""
96 | self.mimeType = ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:95:14: warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
93 | // Backward compatibility for deprecated `subtype` and `mimeType`
94 | self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
95 | self.subtype = ""
| `- warning: 'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
96 | self.mimeType = ""
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:96:14: warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
94 | self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
95 | self.subtype = ""
96 | self.mimeType = ""
| `- warning: 'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead. [#DeprecatedDeclaration]
97 | }
98 |
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[15/35] Compiling YouTubeKit Logging.swift
[16/35] Compiling YouTubeKit RegularExpression.swift
[17/35] Compiling YouTubeKit Retry.swift
[18/35] Compiling YouTubeKit URLSessionDelegates.swift
[19/35] Compiling YouTubeKit WebSocket.swift
[20/35] Compiling YouTubeKit Extraction.swift
[21/35] Compiling YouTubeKit RemoteStream.swift
[22/35] Compiling YouTubeKit RemoteYouTubeClient.swift
[23/35] Compiling YouTubeKit SignatureSolver.swift
[24/35] Compiling YouTubeKit Parser.swift
[25/35] Compiling YouTubeKit AppIdentity.swift
[26/35] Compiling YouTubeKit Chunking.swift
[27/35] 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 |
[28/35] 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 |
[29/35] 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 |
[30/35] Emitting module YouTubeKit
[31/35] Compiling YouTubeKit InnerTube.swift
[32/35] Compiling YouTubeKit Codecs.swift
[33/35] Compiling YouTubeKit FileExtension.swift
[34/35] Compiling YouTubeKit YouTube.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTube.swift:355:19: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
353 | do {
354 | return nil //try await Extraction.getVideoInfo(fromHTML: watchHTML) // (temporarily disabled)
355 | } catch let error {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
356 | os_log("Couldn't extract video info from main watch html: %{public}@", log: log, type: .debug, error.localizedDescription)
357 | return nil
[35/35] Compiling YouTubeKit resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTube.swift:355:19: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
353 | do {
354 | return nil //try await Extraction.getVideoInfo(fromHTML: watchHTML) // (temporarily disabled)
355 | } catch let error {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
356 | os_log("Couldn't extract video info from main watch html: %{public}@", log: log, type: .debug, error.localizedDescription)
357 | return nil
Build complete! (8.02s)
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.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"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/alexeichhorn/youtubekit/0.4.9
Repository: alexeichhorn/YouTubeKit
Swift version used: 6.3
Target: YouTubeKit
Extracting symbol information for 'YouTubeKit'...
Finished extracting symbol information for 'YouTubeKit'. (36.75s)
Building documentation for 'YouTubeKit'...
warning: Parameter 'allowOAuthCache' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:75:168-75:168
73 | private let log = OSLog(YouTube.self)
74 |
75 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'allowOAuthCache' parameter
76 | public init(videoID: String, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
77 | self.videoID = videoID
warning: Parameter 'useOAuth' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:75:168-75:168
73 | private let log = OSLog(YouTube.self)
74 |
75 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'useOAuth' parameter
76 | public init(videoID: String, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
77 | self.videoID = videoID
warning: Parameter 'videoID' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:75:168-75:168
73 | private let log = OSLog(YouTube.self)
74 |
75 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'videoID' parameter
76 | public init(videoID: String, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
77 | self.videoID = videoID
warning: Parameter 'proxies' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:75:168-75:168
73 | private let log = OSLog(YouTube.self)
74 |
75 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'proxies' parameter
76 | public init(videoID: String, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
77 | self.videoID = videoID
warning: Parameter 'allowOAuthCache' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:93:168-93:168
91 | }
92 |
93 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'allowOAuthCache' parameter
94 | public convenience init(url: URL, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
95 | let videoID = Extraction.extractVideoID(from: url.absoluteString) ?? ""
warning: Parameter 'useOAuth' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:93:168-93:168
91 | }
92 |
93 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'useOAuth' parameter
94 | public convenience init(url: URL, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
95 | let videoID = Extraction.extractVideoID(from: url.absoluteString) ?? ""
warning: Parameter 'url' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:93:168-93:168
91 | }
92 |
93 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'url' parameter
94 | public convenience init(url: URL, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
95 | let videoID = Extraction.extractVideoID(from: url.absoluteString) ?? ""
warning: Parameter 'proxies' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:93:168-93:168
91 | }
92 |
93 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'proxies' parameter
94 | public convenience init(url: URL, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
95 | let videoID = Extraction.extractVideoID(from: url.absoluteString) ?? ""
Finished building documentation for 'YouTubeKit' (0.82s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/alexeichhorn/youtubekit/0.4.9
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2345] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.51s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (3.80s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3809] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.40s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (2.11s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.5.0
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Building for debugging...
[0/8] Write sources
[0/8] Write snippet-extract-tool-entitlement.plist
[0/8] Write sources
[4/8] Write swift-version-69A768CDF2A0BEE1.txt
[6/54] Compiling SymbolKit DeclarationFragments.swift
[7/54] Compiling SymbolKit Fragment.swift
[8/54] Compiling SymbolKit FragmentKind.swift
[9/54] Compiling SymbolKit FunctionParameter.swift
[10/54] Compiling SymbolKit FunctionSignature.swift
[11/58] Compiling SymbolKit Names.swift
[12/58] Compiling SymbolKit SPI.swift
[13/58] Compiling SymbolKit Snippet.swift
[14/58] Compiling SymbolKit Extension.swift
[15/58] Compiling SymbolKit Mixin+Equals.swift
[16/58] Compiling SymbolKit Mixin+Hash.swift
[17/58] Compiling SymbolKit Mixin.swift
[18/58] Compiling SymbolKit LineList.swift
[19/58] Compiling SymbolKit Position.swift
[20/58] Compiling SymbolKit Identifier.swift
[21/58] Compiling SymbolKit KindIdentifier.swift
[22/58] Compiling SymbolKit Location.swift
[23/58] Compiling SymbolKit Mutability.swift
[24/58] Compiling SymbolKit SourceRange.swift
[25/58] Compiling SymbolKit Metadata.swift
[26/58] Compiling SymbolKit Module.swift
[27/58] Compiling SymbolKit OperatingSystem.swift
[28/58] Compiling SymbolKit Platform.swift
[29/58] Emitting module SymbolKit
[30/58] Compiling SymbolKit GenericConstraint.swift
[31/58] Compiling SymbolKit GenericParameter.swift
[32/58] Compiling SymbolKit Generics.swift
[33/58] Compiling SymbolKit Namespace.swift
[34/58] Compiling SymbolKit Relationship.swift
[35/58] Compiling SymbolKit RelationshipKind.swift
[36/58] Compiling SymbolKit SourceOrigin.swift
[37/58] Compiling SymbolKit GenericConstraints.swift
[38/58] Compiling SymbolKit Swift.swift
[39/58] Compiling SymbolKit SemanticVersion.swift
[40/58] Compiling SymbolKit AccessControl.swift
[41/58] Compiling SymbolKit Availability.swift
[42/58] Compiling SymbolKit AvailabilityItem.swift
[43/58] Compiling SymbolKit Domain.swift
[44/58] Compiling SymbolKit Symbol.swift
[45/58] Compiling SymbolKit SymbolKind.swift
[46/58] Compiling SymbolKit SymbolGraph.swift
[47/58] Compiling SymbolKit GraphCollector.swift
[48/58] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[49/58] Compiling SymbolKit UnifiedSymbol.swift
[50/58] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[51/58] Compiling SymbolKit UnifiedSymbolGraph.swift
[52/58] Compiling Snippets SnippetParser.swift
[53/58] Compiling Snippets Snippet.swift
[54/58] Compiling Snippets SnippetLanguage.swift
[55/58] Emitting module Snippets
[56/62] Compiling snippet_extract URL+Status.swift
[57/62] Compiling snippet_extract SymbolGraph+Snippet.swift
[58/62] Compiling snippet_extract SnippetBuildCommand.swift
[59/62] Emitting module snippet_extract
[59/62] Write Objects.LinkFileList
[60/62] Linking snippet-extract-tool
[61/62] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.27s)
Building for debugging...
[0/1] Write swift-version-69A768CDF2A0BEE1.txt
Build of target: 'YouTubeKit' complete! (0.20s)
396
3 /Users/admin/builder/spi-builder-workspace/.docs/alexeichhorn/youtubekit/0.4.9
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/alexeichhorn/youtubekit/0.4.9
File count: 396
Doc size: 3.0MB
Preparing doc bundle ...
Using presigned URL upload - AWS credentials not required
Uploading -alexeichhorn-youtubekit-0.4.9-ffd97401.zip to presigned URL
Starting upload of 710937 bytes...
Upload completed successfully
Done.