Build Information
Successful build of YouTubeKit, reference main (c6f63b), with Swift 6.2 for macOS (SPM) on 29 Oct 2025 10:34:18 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.0.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 4.68.0
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 c6f63b7 Merge pull request #109 from alexeichhorn/codex/fix-project-language-classification-on-github
Cloned https://github.com/alexeichhorn/YouTubeKit.git
Revision (git rev-parse @):
c6f63b77c073af04cdb8a9dd288fb6617017d332
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/alexeichhorn/YouTubeKit.git at main
========================================
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",
"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",
"dependencies": [
]
}
]
}
Fetching https://github.com/alexeichhorn/YouTubeKit.git
[1/1576] Fetching youtubekit
Fetched https://github.com/alexeichhorn/YouTubeKit.git from cache (0.85s)
Creating working copy for https://github.com/alexeichhorn/YouTubeKit.git
Working copy of https://github.com/alexeichhorn/YouTubeKit.git resolved at main (c6f63b7)
warning: '.resolve-product-dependencies': dependency 'youtubekit' is not used by any target
Found 0 product dependencies
========================================
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.0.0.app xcrun swift build --arch arm64
Building for debugging...
[0/5] Write sources
[1/5] Copying astring.umd.js
[1/5] Copying meriyah.umd.js
[2/5] Copying yt_ejs_helper.js
[4/5] Write swift-version-49B95AFC49DCD68C.txt
[6/33] Compiling YouTubeKit ITag.swift
[7/33] Compiling YouTubeKit Livestream.swift
[8/33] Compiling YouTubeKit Method.swift
[9/35] Compiling YouTubeKit InnerTube.swift
[10/35] Compiling YouTubeKit Codecs.swift
[11/35] Compiling YouTubeKit FileExtension.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 Concurrency.swift
[19/35] Compiling YouTubeKit Foundation.swift
[20/35] Compiling YouTubeKit Lazy.swift
[21/35] Compiling YouTubeKit Parser.swift
[22/35] Compiling YouTubeKit AppIdentity.swift
[23/35] Compiling YouTubeKit Chunking.swift
[24/35] Compiling YouTubeKit URLSessionDelegates.swift
[25/35] Compiling YouTubeKit WebSocket.swift
[26/35] Compiling YouTubeKit Extraction.swift
[27/35] Compiling YouTubeKit RemoteStream.swift
[28/35] Compiling YouTubeKit RemoteYouTubeClient.swift
[29/35] Compiling YouTubeKit SignatureSolver.swift
[30/35] Emitting module YouTubeKit
[31/35] Compiling YouTubeKit Cipher.swift
[32/35] Compiling YouTubeKit Errors.swift
[33/35] Compiling YouTubeKit AsyncCompatibility.swift
[34/35] Compiling YouTubeKit YouTube.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTube.swift:349:19: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
347 | do {
348 | return nil //try await Extraction.getVideoInfo(fromHTML: watchHTML) // (temporarily disabled)
349 | } catch let error {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
350 | os_log("Couldn't extract video info from main watch html: %{public}@", log: log, type: .debug, error.localizedDescription)
351 | return nil
[35/35] Compiling YouTubeKit resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTube.swift:349:19: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
347 | do {
348 | return nil //try await Extraction.getVideoInfo(fromHTML: watchHTML) // (temporarily disabled)
349 | } catch let error {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
350 | os_log("Couldn't extract video info from main watch html: %{public}@", log: log, type: .debug, error.localizedDescription)
351 | return nil
Build complete! (6.72s)
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.8"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/alexeichhorn/youtubekit/main
Repository: alexeichhorn/YouTubeKit
Swift version used: 6.2
Target: YouTubeKit
Extracting symbol information for 'YouTubeKit'...
Finished extracting symbol information for 'YouTubeKit'. (1.88s)
Building documentation for 'YouTubeKit'...
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 '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 '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 '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) ?? ""
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) ?? ""
Finished building documentation for 'YouTubeKit' (0.22s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/alexeichhorn/youtubekit/main
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2161] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.16s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.5 (3.24s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3565] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.17s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.87s)
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
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.5
Building for debugging...
[0/8] Write sources
[2/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version-49B95AFC49DCD68C.txt
[6/53] Emitting module SymbolKit
[7/57] Compiling SymbolKit SemanticVersion.swift
[8/57] Compiling SymbolKit AccessControl.swift
[9/57] Compiling SymbolKit Availability.swift
[10/57] Compiling SymbolKit AvailabilityItem.swift
[11/57] Compiling SymbolKit Domain.swift
[12/57] Compiling SymbolKit Mixin+Equals.swift
[13/57] Compiling SymbolKit Mixin+Hash.swift
[14/57] Compiling SymbolKit Mixin.swift
[15/57] Compiling SymbolKit LineList.swift
[16/57] Compiling SymbolKit Position.swift
[17/57] Compiling SymbolKit Names.swift
[18/57] Compiling SymbolKit SPI.swift
[19/57] Compiling SymbolKit Snippet.swift
[20/57] Compiling SymbolKit Extension.swift
[21/57] Compiling SymbolKit SourceRange.swift
[22/57] Compiling SymbolKit Metadata.swift
[23/57] Compiling SymbolKit Module.swift
[24/57] Compiling SymbolKit OperatingSystem.swift
[25/57] Compiling SymbolKit Platform.swift
[26/57] Compiling SymbolKit DeclarationFragments.swift
[27/57] Compiling SymbolKit Fragment.swift
[28/57] Compiling SymbolKit FragmentKind.swift
[29/57] Compiling SymbolKit FunctionParameter.swift
[30/57] Compiling SymbolKit FunctionSignature.swift
[31/57] Compiling SymbolKit GenericConstraint.swift
[32/57] Compiling SymbolKit GenericParameter.swift
[33/57] Compiling SymbolKit Generics.swift
[34/57] Compiling SymbolKit Namespace.swift
[35/57] Compiling SymbolKit Relationship.swift
[36/57] Compiling SymbolKit RelationshipKind.swift
[37/57] Compiling SymbolKit SourceOrigin.swift
[38/57] Compiling SymbolKit GenericConstraints.swift
[39/57] Compiling SymbolKit Swift.swift
[40/57] Compiling SymbolKit Identifier.swift
[41/57] Compiling SymbolKit KindIdentifier.swift
[42/57] Compiling SymbolKit Location.swift
[43/57] Compiling SymbolKit Mutability.swift
[44/57] Compiling SymbolKit Symbol.swift
[45/57] Compiling SymbolKit SymbolKind.swift
[46/57] Compiling SymbolKit SymbolGraph.swift
[47/57] Compiling SymbolKit GraphCollector.swift
[48/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[49/57] Compiling SymbolKit UnifiedSymbol.swift
[50/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[51/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[52/57] Emitting module Snippets
[53/57] Compiling Snippets Snippet.swift
[54/57] Compiling Snippets SnippetParser.swift
[55/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[56/61] Compiling snippet_extract URL+Status.swift
[57/61] Emitting module snippet_extract
[58/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (2.87s)
Building for debugging...
[0/1] Write swift-version-49B95AFC49DCD68C.txt
Build of target: 'YouTubeKit' complete! (0.17s)
394
3 /Users/admin/builder/spi-builder-workspace/.docs/alexeichhorn/youtubekit/main
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/alexeichhorn/youtubekit/main
File count: 394
Doc size: 3.0MB
Preparing doc bundle ...
Uploading prod-alexeichhorn-youtubekit-main-7fcc333a.zip to s3://spi-docs-inbox/prod-alexeichhorn-youtubekit-main-7fcc333a.zip
Copying... [19%]
Copying... [29%]
Copying... [38%]
Copying... [48%]
Copying... [57%]
Copying... [67%]
Copying... [77%]
Copying... [86%]
Copying... [96%]
Copying... [100%]
Done.