Build Information
Successful build of YouTubeKit, reference v2.6.0 (84c900), with Swift 6.2 for macOS (SPM) on 9 Dec 2025 21:28:42 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/b5i/YouTubeKit.git
Reference: v2.6.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/b5i/YouTubeKit
* tag v2.6.0 -> FETCH_HEAD
HEAD is now at 84c9008 fix: fix tests by removing obsolete ones
Cloned https://github.com/b5i/YouTubeKit.git
Revision (git rev-parse @):
84c90081a570a09af9b0fe27929170b43c0da4bf
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/b5i/YouTubeKit.git at v2.6.0
========================================
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/b5i/YouTubeKit.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/YouTubeKit",
"dependencies": [
]
}
]
}
Fetching https://github.com/b5i/YouTubeKit.git
[1/2521] Fetching youtubekit
Fetched https://github.com/b5i/YouTubeKit.git from cache (30.79s)
Creating working copy for https://github.com/b5i/YouTubeKit.git
Working copy of https://github.com/b5i/YouTubeKit.git resolved at v2.6.0 (84c9008)
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/b5i/YouTubeKit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-49B95AFC49DCD68C.txt
[3/101] Emitting module YouTubeKit
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
1792 | }
1793 | #else
1794 | extension String: LocalizedError {
| |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
1795 | public var errorDescription: String? { self }
1796 | }
[4/111] Compiling YouTubeKit YouTubeVideo+fetchAllPossibleHostPlaylists.swift
[5/111] Compiling YouTubeKit YouTubeVideo+fetchMoreInfos.swift
[6/111] Compiling YouTubeKit YouTubeVideo+fetchStreamingInfos.swift
[7/111] Compiling YouTubeKit YouTubeVideo+fetchStreamingInfosWithDownloadFormats.swift
[8/111] Compiling YouTubeKit YouTubeVideo+getCaptions.swift
[9/111] Compiling YouTubeKit YouTubeVideo+likeActions.swift
[10/111] Compiling YouTubeKit YouTubeVideo.swift
[11/111] Compiling YouTubeKit YTCaption.swift
[12/111] Compiling YouTubeKit YTChannel.swift
[13/111] Compiling YouTubeKit YTComment+actions.swift
[14/111] Compiling YouTubeKit YTComment.swift
[15/111] Compiling YouTubeKit HomeScreenResponse.swift
[16/111] Compiling YouTubeKit PlaylistInfosResponse.swift
[17/111] Compiling YouTubeKit SearchResponse.swift
[18/111] Compiling YouTubeKit YTSearchResult+canBeDecoded.swift
[19/111] Compiling YouTubeKit YTSearchResult+decodeJSON.swift
[20/111] Compiling YouTubeKit YTSearchResult+filterTypes.swift
[21/111] Compiling YouTubeKit YTSearchResult.swift
[22/111] Compiling YouTubeKit YTSearchResultType.swift
[23/111] Compiling YouTubeKit TrendingVideosResponse.swift
[24/111] Compiling YouTubeKit AudioOnlyFormat.swift
[25/111] Compiling YouTubeKit YTLittleChannelInfos.swift
[26/111] Compiling YouTubeKit YTPlaylist+canShowBeDecoded.swift
[27/111] Compiling YouTubeKit YTPlaylist+decodeShowFromJSON.swift
[28/111] Compiling YouTubeKit YTPlaylist+fetchVideos.swift
[29/111] Compiling YouTubeKit YTPlaylist.swift
[30/111] Compiling YouTubeKit YTThumbnail.swift
[31/111] Compiling YouTubeKit YTVideo+decodeShortFromJSON.swift
[32/111] Compiling YouTubeKit YTVideo+decodeVideoFromPlaylist.swift
[33/111] Compiling YouTubeKit YTVideo.swift
[34/111] Compiling YouTubeKit BadRequestDataError.swift
[35/111] Compiling YouTubeKit NetworkError.swift
[36/111] Compiling YouTubeKit ResponseExtractionError.swift
[37/111] Compiling YouTubeKit ParameterValidator+commonValidators.swift
[38/111] Compiling YouTubeKit ParameterValidator.swift
[39/111] Compiling YouTubeKit HeaderTypes+Hashable.swift
[40/111] Compiling YouTubeKit HeaderTypes+RawRepresentable.swift
[41/111] Compiling YouTubeKit HeaderTypes.swift
[42/111] Compiling YouTubeKit HeadersList.swift
[43/111] Compiling YouTubeKit RequestLog.swift
[44/111] Compiling YouTubeKit RequestLogger+defaultImplementations.swift
[45/111] Compiling YouTubeKit RequestsLogger.swift
[46/111] Compiling YouTubeKit SwiftyJSON.swift
[47/111] Compiling YouTubeKit YTLikeStatus.swift
[48/111] Compiling YouTubeKit YTPrivacy.swift
[49/111] Compiling YouTubeKit YouTubeChannel+fetchInfos.swift
[50/111] Compiling YouTubeKit YouTubeChannel+subscribeActions.swift
[51/111] Compiling YouTubeKit YouTubeChannel.swift
[52/111] Compiling YouTubeKit AuthenticatedContinuableResponse+fetchContinuation.swift
[53/111] Compiling YouTubeKit AuthenticatedContinuableResponse.swift
[54/111] Compiling YouTubeKit ContinuableResponse+fetchContinuation.swift
[55/111] Compiling YouTubeKit ContinuableResponse+mergeContinuation.swift
[56/111] Compiling YouTubeKit ContinuableResponse.swift
[57/111] Compiling YouTubeKit ResponseContinuation.swift
[58/111] Compiling YouTubeKit UnsubscribeChannelResponse.swift
[59/111] Compiling YouTubeKit CreateCommentResponse.swift
[60/111] Compiling YouTubeKit DeleteCommentResponse.swift
[61/111] Compiling YouTubeKit DislikeCommentResponse.swift
[62/111] Compiling YouTubeKit EditCommentResponse.swift
[63/111] Compiling YouTubeKit EditReplyCommandResponse.swift
[64/111] Compiling YouTubeKit LikeCommentResponse.swift
[65/111] Compiling YouTubeKit RemoveDislikeCommentResponse.swift
[66/111] Compiling YouTubeKit RemoveLikeCommentResponse.swift
[67/111] Compiling YouTubeKit ReplyCommentResponse.swift
[68/111] Compiling YouTubeKit HistoryBlockContent.swift
[69/111] Compiling YouTubeKit HistoryReponse+removeVideo.swift
[70/111] Compiling YouTubeKit HistoryResponse.swift
[71/111] Compiling YouTubeKit RemoveVideoFromHistroryResponse.swift
[72/111] Compiling YouTubeKit AddVideoToPlaylistResponse.swift
[73/111] Compiling YouTubeKit AllPossibleHostPlaylistsResponse.swift
[74/111] Compiling YouTubeKit CreatePlaylistResponse.swift
[75/111] Compiling YouTubeKit DeletePlaylistResponse.swift
[76/111] Compiling YouTubeKit MoveVideoInPlaylistResponse.swift
[77/111] Compiling YouTubeKit RemoveVideoByIdFromPlaylistResponse.swift
[78/111] Compiling YouTubeKit RemoveVideoFromPlaylistResponse.swift
[79/111] Compiling YouTubeKit SimpleOperationAuthenticatedResponse.swift
[80/111] Compiling YouTubeKit DislikeVideoResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:812:35: warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
810 | }
811 | }
812 | } else if let musicChannelContinuationToken = secondPlaylistGroup["shelfRenderer", "menu", "menuRenderer", "topLevelButtons", 0, "buttonRenderer", "navigationEndpoint", "showEngagementPanelEndpoint", "engagementPanel", "engagementPanelSectionListRenderer", "content", "sectionListRenderer", "contents", 0, "itemSectionRenderer", "contents", 0, "continuationItemRenderer", "continuationEndpoint", "continuationCommand", "token"].string {
| `- warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
813 | return toReturn // empty so that it fetches the continuation token
814 | }
[81/111] Compiling YouTubeKit LikeVideoResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:812:35: warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
810 | }
811 | }
812 | } else if let musicChannelContinuationToken = secondPlaylistGroup["shelfRenderer", "menu", "menuRenderer", "topLevelButtons", 0, "buttonRenderer", "navigationEndpoint", "showEngagementPanelEndpoint", "engagementPanel", "engagementPanelSectionListRenderer", "content", "sectionListRenderer", "contents", 0, "itemSectionRenderer", "contents", 0, "continuationItemRenderer", "continuationEndpoint", "continuationCommand", "token"].string {
| `- warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
813 | return toReturn // empty so that it fetches the continuation token
814 | }
[82/111] Compiling YouTubeKit RemoveLikeFromVideoResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:812:35: warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
810 | }
811 | }
812 | } else if let musicChannelContinuationToken = secondPlaylistGroup["shelfRenderer", "menu", "menuRenderer", "topLevelButtons", 0, "buttonRenderer", "navigationEndpoint", "showEngagementPanelEndpoint", "engagementPanel", "engagementPanelSectionListRenderer", "content", "sectionListRenderer", "contents", 0, "itemSectionRenderer", "contents", 0, "continuationItemRenderer", "continuationEndpoint", "continuationCommand", "token"].string {
| `- warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
813 | return toReturn // empty so that it fetches the continuation token
814 | }
[83/111] Compiling YouTubeKit AutoCompletionResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:812:35: warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
810 | }
811 | }
812 | } else if let musicChannelContinuationToken = secondPlaylistGroup["shelfRenderer", "menu", "menuRenderer", "topLevelButtons", 0, "buttonRenderer", "navigationEndpoint", "showEngagementPanelEndpoint", "engagementPanel", "engagementPanelSectionListRenderer", "content", "sectionListRenderer", "contents", 0, "itemSectionRenderer", "contents", 0, "continuationItemRenderer", "continuationEndpoint", "continuationCommand", "token"].string {
| `- warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
813 | return toReturn // empty so that it fetches the continuation token
814 | }
[84/111] Compiling YouTubeKit ChannelContent+canDecode.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:812:35: warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
810 | }
811 | }
812 | } else if let musicChannelContinuationToken = secondPlaylistGroup["shelfRenderer", "menu", "menuRenderer", "topLevelButtons", 0, "buttonRenderer", "navigationEndpoint", "showEngagementPanelEndpoint", "engagementPanel", "engagementPanelSectionListRenderer", "content", "sectionListRenderer", "contents", 0, "itemSectionRenderer", "contents", 0, "continuationItemRenderer", "continuationEndpoint", "continuationCommand", "token"].string {
| `- warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
813 | return toReturn // empty so that it fetches the continuation token
814 | }
[85/111] Compiling YouTubeKit ChannelContent+decodeJSONFromTab.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:812:35: warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
810 | }
811 | }
812 | } else if let musicChannelContinuationToken = secondPlaylistGroup["shelfRenderer", "menu", "menuRenderer", "topLevelButtons", 0, "buttonRenderer", "navigationEndpoint", "showEngagementPanelEndpoint", "engagementPanel", "engagementPanelSectionListRenderer", "content", "sectionListRenderer", "contents", 0, "itemSectionRenderer", "contents", 0, "continuationItemRenderer", "continuationEndpoint", "continuationCommand", "token"].string {
| `- warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
813 | return toReturn // empty so that it fetches the continuation token
814 | }
[86/111] Compiling YouTubeKit ChannelContent+getContinuationFromTab.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:812:35: warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
810 | }
811 | }
812 | } else if let musicChannelContinuationToken = secondPlaylistGroup["shelfRenderer", "menu", "menuRenderer", "topLevelButtons", 0, "buttonRenderer", "navigationEndpoint", "showEngagementPanelEndpoint", "engagementPanel", "engagementPanelSectionListRenderer", "content", "sectionListRenderer", "contents", 0, "itemSectionRenderer", "contents", 0, "continuationItemRenderer", "continuationEndpoint", "continuationCommand", "token"].string {
| `- warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
813 | return toReturn // empty so that it fetches the continuation token
814 | }
[87/111] Compiling YouTubeKit ChannelContent.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:812:35: warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
810 | }
811 | }
812 | } else if let musicChannelContinuationToken = secondPlaylistGroup["shelfRenderer", "menu", "menuRenderer", "topLevelButtons", 0, "buttonRenderer", "navigationEndpoint", "showEngagementPanelEndpoint", "engagementPanel", "engagementPanelSectionListRenderer", "content", "sectionListRenderer", "contents", 0, "itemSectionRenderer", "contents", 0, "continuationItemRenderer", "continuationEndpoint", "continuationCommand", "token"].string {
| `- warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
813 | return toReturn // empty so that it fetches the continuation token
814 | }
[88/111] Compiling YouTubeKit ChannelInfosResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:812:35: warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
810 | }
811 | }
812 | } else if let musicChannelContinuationToken = secondPlaylistGroup["shelfRenderer", "menu", "menuRenderer", "topLevelButtons", 0, "buttonRenderer", "navigationEndpoint", "showEngagementPanelEndpoint", "engagementPanel", "engagementPanelSectionListRenderer", "content", "sectionListRenderer", "contents", 0, "itemSectionRenderer", "contents", 0, "continuationItemRenderer", "continuationEndpoint", "continuationCommand", "token"].string {
| `- warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
813 | return toReturn // empty so that it fetches the continuation token
814 | }
[89/111] Compiling YouTubeKit ListableChannelContent+addChannelInfos.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:812:35: warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
810 | }
811 | }
812 | } else if let musicChannelContinuationToken = secondPlaylistGroup["shelfRenderer", "menu", "menuRenderer", "topLevelButtons", 0, "buttonRenderer", "navigationEndpoint", "showEngagementPanelEndpoint", "engagementPanel", "engagementPanelSectionListRenderer", "content", "sectionListRenderer", "contents", 0, "itemSectionRenderer", "contents", 0, "continuationItemRenderer", "continuationEndpoint", "continuationCommand", "token"].string {
| `- warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
813 | return toReturn // empty so that it fetches the continuation token
814 | }
[90/111] Compiling YouTubeKit ListableChannelContent.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:812:35: warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
810 | }
811 | }
812 | } else if let musicChannelContinuationToken = secondPlaylistGroup["shelfRenderer", "menu", "menuRenderer", "topLevelButtons", 0, "buttonRenderer", "navigationEndpoint", "showEngagementPanelEndpoint", "engagementPanel", "engagementPanelSectionListRenderer", "content", "sectionListRenderer", "contents", 0, "itemSectionRenderer", "contents", 0, "continuationItemRenderer", "continuationEndpoint", "continuationCommand", "token"].string {
| `- warning: value 'musicChannelContinuationToken' was defined but never used; consider replacing with boolean test [#no-usage]
813 | return toReturn // empty so that it fetches the continuation token
814 | }
[91/111] Compiling YouTubeKit URL+AppendQueryItems.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
1792 | }
1793 | #else
1794 | extension String: LocalizedError {
| |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
1795 | public var errorDescription: String? { self }
1796 | }
[92/111] Compiling YouTubeKit String+ytkRegexMatches.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
1792 | }
1793 | #else
1794 | extension String: LocalizedError {
| |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
1795 | public var errorDescription: String? { self }
1796 | }
[93/111] Compiling YouTubeKit YouTubeModel.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
1792 | }
1793 | #else
1794 | extension String: LocalizedError {
| |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
1795 | public var errorDescription: String? { self }
1796 | }
[94/111] Compiling YouTubeKit YouTubeResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
1792 | }
1793 | #else
1794 | extension String: LocalizedError {
| |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
1795 | public var errorDescription: String? { self }
1796 | }
[95/111] Compiling YouTubeKit AccountInfosResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
1792 | }
1793 | #else
1794 | extension String: LocalizedError {
| |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
1795 | public var errorDescription: String? { self }
1796 | }
[96/111] Compiling YouTubeKit AccountLibraryResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
1792 | }
1793 | #else
1794 | extension String: LocalizedError {
| |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
1795 | public var errorDescription: String? { self }
1796 | }
[97/111] Compiling YouTubeKit AccountPlaylistsResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
1792 | }
1793 | #else
1794 | extension String: LocalizedError {
| |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
1795 | public var errorDescription: String? { self }
1796 | }
[98/111] Compiling YouTubeKit AccountSubscriptionsFeedResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
1792 | }
1793 | #else
1794 | extension String: LocalizedError {
| |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
1795 | public var errorDescription: String? { self }
1796 | }
[99/111] Compiling YouTubeKit AccountSubscriptionsResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
1792 | }
1793 | #else
1794 | extension String: LocalizedError {
| |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
1795 | public var errorDescription: String? { self }
1796 | }
[100/111] Compiling YouTubeKit AuthenticatedResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
1792 | }
1793 | #else
1794 | extension String: LocalizedError {
| |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
1795 | public var errorDescription: String? { self }
1796 | }
[101/111] Compiling YouTubeKit SubscribeChannelResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
1792 | }
1793 | #else
1794 | extension String: LocalizedError {
| |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
1795 | public var errorDescription: String? { self }
1796 | }
[102/111] Compiling YouTubeKit CommentTranslationResponse.swift
[103/111] Compiling YouTubeKit DownloadFormat.swift
[104/111] Compiling YouTubeKit MediaType.swift
[105/111] Compiling YouTubeKit MoreVideoInfosResponse.swift
[106/111] Compiling YouTubeKit VideoCaptionsResponse.swift
[107/111] Compiling YouTubeKit VideoCommentsResponse.swift
[108/111] Compiling YouTubeKit VideoDownloadFormat.swift
[109/111] Compiling YouTubeKit VideoInfosResponse.swift
[110/111] Compiling YouTubeKit VideoInfosWithDownloadFormatsResponse.swift
[111/111] Compiling YouTubeKit [URLQueryItem]+makeUnique.swift
Build complete! (4.89s)
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" : [
"YouTubeKitTests.swift"
],
"target_dependencies" : [
"YouTubeKit"
],
"type" : "test"
},
{
"c99name" : "YouTubeKit",
"module_type" : "SwiftTarget",
"name" : "YouTubeKit",
"path" : "Sources/YouTubeKit",
"product_memberships" : [
"YouTubeKit"
],
"sources" : [
"BaseEnums/YTLikeStatus.swift",
"BaseEnums/YTPrivacy.swift",
"BaseProtocols/Channel/YouTubeChannel+fetchInfos.swift",
"BaseProtocols/Channel/YouTubeChannel+subscribeActions.swift",
"BaseProtocols/Channel/YouTubeChannel.swift",
"BaseProtocols/Continuation/AuthenticatedContinuableResponse+fetchContinuation.swift",
"BaseProtocols/Continuation/AuthenticatedContinuableResponse.swift",
"BaseProtocols/Continuation/ContinuableResponse+fetchContinuation.swift",
"BaseProtocols/Continuation/ContinuableResponse+mergeContinuation.swift",
"BaseProtocols/Continuation/ContinuableResponse.swift",
"BaseProtocols/Continuation/ResponseContinuation.swift",
"BaseProtocols/Video/YouTubeVideo+fetchAllPossibleHostPlaylists.swift",
"BaseProtocols/Video/YouTubeVideo+fetchMoreInfos.swift",
"BaseProtocols/Video/YouTubeVideo+fetchStreamingInfos.swift",
"BaseProtocols/Video/YouTubeVideo+fetchStreamingInfosWithDownloadFormats.swift",
"BaseProtocols/Video/YouTubeVideo+getCaptions.swift",
"BaseProtocols/Video/YouTubeVideo+likeActions.swift",
"BaseProtocols/Video/YouTubeVideo.swift",
"BaseStructs/YTCaption.swift",
"BaseStructs/YTChannel.swift",
"BaseStructs/YTComment+actions.swift",
"BaseStructs/YTComment.swift",
"BaseStructs/YTLittleChannelInfos.swift",
"BaseStructs/YTPlaylist+canShowBeDecoded.swift",
"BaseStructs/YTPlaylist+decodeShowFromJSON.swift",
"BaseStructs/YTPlaylist+fetchVideos.swift",
"BaseStructs/YTPlaylist.swift",
"BaseStructs/YTThumbnail.swift",
"BaseStructs/YTVideo+decodeShortFromJSON.swift",
"BaseStructs/YTVideo+decodeVideoFromPlaylist.swift",
"BaseStructs/YTVideo.swift",
"ErrorHandling/ErrorTypes/BadRequestDataError.swift",
"ErrorHandling/ErrorTypes/NetworkError.swift",
"ErrorHandling/ErrorTypes/ResponseExtractionError.swift",
"ErrorHandling/ParameterValidator+commonValidators.swift",
"ErrorHandling/ParameterValidator.swift",
"HeaderTypes+Hashable.swift",
"HeaderTypes+RawRepresentable.swift",
"HeaderTypes.swift",
"HeadersList.swift",
"Logging/RequestLog.swift",
"Logging/RequestLogger+defaultImplementations.swift",
"Logging/RequestsLogger.swift",
"SwiftyJSON/SwiftyJSON.swift",
"URL+AppendQueryItems.swift",
"Utils/String+ytkRegexMatches.swift",
"YouTubeModel.swift",
"YouTubeResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/AccountResponses/AccountInfosResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/AccountResponses/AccountLibraryResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/AccountResponses/AccountPlaylistsResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/AccountResponses/AccountSubscriptionsFeedResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/AccountResponses/AccountSubscriptionsResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/AuthenticatedResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/ChannelsActions/SubscribeChannelResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/ChannelsActions/UnsubscribeChannelResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/CreateCommentResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/DeleteCommentResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/DislikeCommentResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/EditCommentResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/EditReplyCommandResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/LikeCommentResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/RemoveDislikeCommentResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/RemoveLikeCommentResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/ReplyCommentResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/HistoryActions/HistoryBlockContent.swift",
"YouTubeResponseTypes/AuthenticatedResponses/HistoryActions/HistoryReponse+removeVideo.swift",
"YouTubeResponseTypes/AuthenticatedResponses/HistoryActions/HistoryResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/HistoryActions/RemoveVideoFromHistroryResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/AddVideoToPlaylistResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/AllPossibleHostPlaylistsResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/CreatePlaylistResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/DeletePlaylistResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/MoveVideoInPlaylistResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/RemoveVideoByIdFromPlaylistResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/RemoveVideoFromPlaylistResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/SimpleOperationAuthenticatedResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/VideosActions/DislikeVideoResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/VideosActions/LikeVideoResponse.swift",
"YouTubeResponseTypes/AuthenticatedResponses/VideosActions/RemoveLikeFromVideoResponse.swift",
"YouTubeResponseTypes/AutoCompletion/AutoCompletionResponse.swift",
"YouTubeResponseTypes/ChannelInfos/ChannelContent+canDecode.swift",
"YouTubeResponseTypes/ChannelInfos/ChannelContent+decodeJSONFromTab.swift",
"YouTubeResponseTypes/ChannelInfos/ChannelContent+getContinuationFromTab.swift",
"YouTubeResponseTypes/ChannelInfos/ChannelContent.swift",
"YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift",
"YouTubeResponseTypes/ChannelInfos/ListableChannelContent+addChannelInfos.swift",
"YouTubeResponseTypes/ChannelInfos/ListableChannelContent.swift",
"YouTubeResponseTypes/Home/HomeScreenResponse.swift",
"YouTubeResponseTypes/PlaylistInfos/PlaylistInfosResponse.swift",
"YouTubeResponseTypes/Search/SearchResponse.swift",
"YouTubeResponseTypes/Search/YTSearchResult+canBeDecoded.swift",
"YouTubeResponseTypes/Search/YTSearchResult+decodeJSON.swift",
"YouTubeResponseTypes/Search/YTSearchResult+filterTypes.swift",
"YouTubeResponseTypes/Search/YTSearchResult.swift",
"YouTubeResponseTypes/Search/YTSearchResultType.swift",
"YouTubeResponseTypes/Trending/TrendingVideosResponse.swift",
"YouTubeResponseTypes/VideoInfos/AudioOnlyFormat.swift",
"YouTubeResponseTypes/VideoInfos/CommentTranslationResponse.swift",
"YouTubeResponseTypes/VideoInfos/DownloadFormat.swift",
"YouTubeResponseTypes/VideoInfos/MediaType.swift",
"YouTubeResponseTypes/VideoInfos/MoreVideoInfosResponse.swift",
"YouTubeResponseTypes/VideoInfos/VideoCaptionsResponse.swift",
"YouTubeResponseTypes/VideoInfos/VideoCommentsResponse.swift",
"YouTubeResponseTypes/VideoInfos/VideoDownloadFormat.swift",
"YouTubeResponseTypes/VideoInfos/VideoInfosResponse.swift",
"YouTubeResponseTypes/VideoInfos/VideoInfosWithDownloadFormatsResponse.swift",
"[URLQueryItem]+makeUnique.swift"
],
"type" : "library"
}
],
"tools_version" : "5.6"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/b5i/youtubekit/v2.6.0
Repository: b5i/YouTubeKit
Swift version used: 6.2
Target: YouTubeKit
Extracting symbol information for 'YouTubeKit'...
Finished extracting symbol information for 'YouTubeKit'. (1.84s)
Building documentation for 'YouTubeKit'...
warning: Parameter 'useCookies' is missing documentation
--> Sources/YouTubeKit/BaseProtocols/Video/YouTubeVideo.swift:61:57-61:57
59 | /// - Parameters:
60 | /// - youtubeModel: the ``YouTubeModel`` that has to be used to know which headers to use.
61 + /// - infos: A ``VideoInfosResponse`` or an error.
| ╰─suggestion: Document 'useCookies' parameter
62 | /// - Warning: For some reason, making this request using cookies will fail, therefore cookies are disabled when doing the request. Private videos will unfortunately not be accessible.
63 | func fetchStreamingInfos(
warning: Parameter 'json' not found in initializer declaration
--> Sources/YouTubeKit/SwiftyJSON/SwiftyJSON.swift:127:18-127:22
125 | Parses the JSON string into a JSON object
126 |
127 + - parameter json: the JSON string
| ╰─suggestion: Replace 'json' with 'jsonString'
128 |
129 | - returns: the created JSON object
warning: Parameter 'jsonString' is missing documentation
--> Sources/YouTubeKit/SwiftyJSON/SwiftyJSON.swift:128:6-128:6
126 |
127 | - parameter json: the JSON string
128 +
| ╰─suggestion: Document 'jsonString' parameter
129 | - returns: the created JSON object
130 | */
warning: Parameter 'time' is missing documentation
--> Sources/YouTubeKit/YouTubeModel.swift:71:62-71:62
69 | #if canImport(CommonCrypto)
70 | /// Generate the authentication hash from user's cookies required by YouTube.
71 + /// - Parameter cookies: user's authentification cookies.
| ╰─suggestion: Document 'time' parameter
72 | /// - Returns: A SAPISIDHASH cookie value, is generally used as the value for an HTTP header with name `Authorization`.
73 | public func generateSAPISIDHASHForCookies(_ cookies: String, time: Int? = nil) -> String? {
warning: Parameter 'data' not found in type method declaration
--> Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelContent.swift:23:9-23:66
21 |
22 | /// Decode from a "tab" YouTube JSON dictionnary a ChannelContent
23 + /// - Parameter data: some JSON representing a "tabRenderer".
| ╰─suggestion: Remove 'data' parameter documentation
24 | /// - Parameter channelInfos: A piece of information about the channel that will be used to complete the informations in the results that are often missing.
25 | /// - Returns: a ChannelContent
warning: Parameter 'json' is missing documentation
--> Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelContent.swift:24:161-24:161
22 | /// Decode from a "tab" YouTube JSON dictionnary a ChannelContent
23 | /// - Parameter data: some JSON representing a "tabRenderer".
24 + /// - Parameter channelInfos: A piece of information about the channel that will be used to complete the informations in the results that are often missing.
| ╰─suggestion: Document 'json' parameter
25 | /// - Returns: a ChannelContent
26 | static func decodeJSONFromTab(_ json: JSON, channelInfos: YTLittleChannelInfos?) -> Self?
warning: 'copyProperties(of:)' is ambiguous at '/YouTubeKit/ChannelInfosResponse'
--> Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:310:114-310:133
308 | /// - result: An instance of ``ChannelInfosResponse`` containing the result and updated channel properties or/and an error.
309 | ///
310 + /// You can update your instance of ``ChannelInfosResponse``with the new one by using ``ChannelInfosResponse/copyProperties(of:)`` with the new instance ``ChannelInfosResponse`` that this method returns.
| ├─suggestion: Insert '-(YTChannel)' for 'mutating func copyProperties(of channel: YTChannel)'
| ╰─suggestion: Insert '-(ChannelInfosResponse)' for 'mutating func copyProperties(of otherResponse: ChannelInfosResponse)'
311 | /// ```swift
312 | /// let YTM = YouTubeModel()
warning: Parameter 'useCookies' is missing documentation
--> Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:351:93-351:93
349 | /// - Parameters:
350 | /// - type: Type of content requested, (the tab of the wanted content).
351 + /// - youtubeModel: the ``YouTubeModel`` that will be used to get the request headers.
| ╰─suggestion: Document 'useCookies' parameter
352 | /// - Returns: An instance of ``ChannelInfosResponse`` containing the result and updated channel properties or/and an error.
353 | ///
warning: 'copyProperties(of:)' is ambiguous at '/YouTubeKit/ChannelInfosResponse'
--> Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:354:114-354:133
352 | /// - Returns: An instance of ``ChannelInfosResponse`` containing the result and updated channel properties or/and an error.
353 | ///
354 + /// You can update your instance of ``ChannelInfosResponse``with the new one by using ``ChannelInfosResponse/copyProperties(of:)`` with the new instance ``ChannelInfosResponse`` that this method returns.
| ├─suggestion: Insert '-(YTChannel)' for 'mutating func copyProperties(of channel: YTChannel)'
| ╰─suggestion: Insert '-(ChannelInfosResponse)' for 'mutating func copyProperties(of otherResponse: ChannelInfosResponse)'
355 | /// ```swift
356 | /// let YTM = YouTubeModel()
warning: Unnamed parameter #1 is missing documentation
--> Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:397:9-397:9
395 | /// - useCookies: boolean that precises if the request should include the model's ``YouTubeModel/cookies``, if set to nil, the value will be taken from ``YouTubeModel/alwaysUseCookies``. The cookies will be added to the `Cookie` HTTP header if one is already present or a new one will be created if not.
396 | /// - result: a ``ChannelInfosResponse/ContentContinuation`` representing the result (see definition) or/and an Error indicating why it failed.
397 + ///
| ╰─suggestion: Document unnamed parameter #1
398 | /// - Note: (For ``ListableChannelContent`` continuations) The elements from the continuation's contents usually don't contain the channel's information. You can still add them by calling ``ListableChannelContent/addChannelInfos(_:)`` or ``mergeListableChannelContentContinuation(_:)`` on the continuation with the information of the channel.
399 | public func getChannelContentContinuation<T: ChannelContent>(
warning: Unnamed parameter #1 is missing documentation
--> Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:423:311-423:311
421 | /// - Parameters:
422 | /// - youtubeModel: the ``YouTubeModel`` that will be used to get the request headers.
423 + /// - useCookies: boolean that precises if the request should include the model's ``YouTubeModel/cookies``, if set to nil, the value will be taken from ``YouTubeModel/alwaysUseCookies``. The cookies will be added to the `Cookie` HTTP header if one is already present or a new one will be created if not.
| ╰─suggestion: Document unnamed parameter #1
424 | /// - Returns: a ``ChannelInfosResponse/ContentContinuation`` representing the result (see definition) or/and an Error indicating why it failed.
425 | ///
warning: Parameter 'otherResponse' not found in instance method declaration
--> Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:846:9-846:98
844 |
845 | /// Copy properties from another ``ChannelInfosResponse`` to the current ``ChannelInfosResponse`` instance.
846 + /// - Parameter otherResponse: the ``ChannelInfosResponse`` where the infos will be taken of.
| ╰─suggestion: Remove 'otherResponse' parameter documentation
847 | public mutating func copyProperties(of channel: YTChannel) {
848 | self.avatarThumbnails = channel.thumbnails
warning: Parameter 'channel' is missing documentation
--> Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift:846:98-846:98
844 |
845 | /// Copy properties from another ``ChannelInfosResponse`` to the current ``ChannelInfosResponse`` instance.
846 + /// - Parameter otherResponse: the ``ChannelInfosResponse`` where the infos will be taken of.
| ╰─suggestion: Document 'channel' parameter
847 | public mutating func copyProperties(of channel: YTChannel) {
848 | self.avatarThumbnails = channel.thumbnails
Finished building documentation for 'YouTubeKit' (1.17s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/b5i/youtubekit/v2.6.0
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2158] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (29.26s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.5 (30.24s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3594] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (25.70s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (26.37s)
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
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
[2/8] Write snippet-extract-tool-entitlement.plist
[3/8] Write sources
[4/8] Write swift-version-49B95AFC49DCD68C.txt
[6/53] Compiling SymbolKit GenericConstraint.swift
[7/53] Compiling SymbolKit GenericParameter.swift
[8/53] Compiling SymbolKit Generics.swift
[9/53] Compiling SymbolKit Namespace.swift
[10/57] Compiling SymbolKit SemanticVersion.swift
[11/57] Compiling SymbolKit AccessControl.swift
[12/57] Compiling SymbolKit Availability.swift
[13/57] Compiling SymbolKit AvailabilityItem.swift
[14/57] Compiling SymbolKit Domain.swift
[15/57] Compiling SymbolKit Mixin+Equals.swift
[16/57] Compiling SymbolKit Mixin+Hash.swift
[17/57] Compiling SymbolKit Mixin.swift
[18/57] Compiling SymbolKit LineList.swift
[19/57] Compiling SymbolKit Position.swift
[20/57] Compiling SymbolKit Identifier.swift
[21/57] Compiling SymbolKit KindIdentifier.swift
[22/57] Compiling SymbolKit Location.swift
[23/57] Compiling SymbolKit Mutability.swift
[24/57] Compiling SymbolKit DeclarationFragments.swift
[25/57] Compiling SymbolKit Fragment.swift
[26/57] Compiling SymbolKit FragmentKind.swift
[27/57] Compiling SymbolKit FunctionParameter.swift
[28/57] Compiling SymbolKit FunctionSignature.swift
[29/57] Emitting module SymbolKit
[30/57] Compiling SymbolKit Names.swift
[31/57] Compiling SymbolKit SPI.swift
[32/57] Compiling SymbolKit Snippet.swift
[33/57] Compiling SymbolKit Extension.swift
[34/57] Compiling SymbolKit SourceRange.swift
[35/57] Compiling SymbolKit Metadata.swift
[36/57] Compiling SymbolKit Module.swift
[37/57] Compiling SymbolKit OperatingSystem.swift
[38/57] Compiling SymbolKit Platform.swift
[39/57] Compiling SymbolKit Relationship.swift
[40/57] Compiling SymbolKit RelationshipKind.swift
[41/57] Compiling SymbolKit SourceOrigin.swift
[42/57] Compiling SymbolKit GenericConstraints.swift
[43/57] Compiling SymbolKit Swift.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 URL+Status.swift
[56/61] Compiling snippet_extract SymbolGraph+Snippet.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.97s)
Building for debugging...
[0/1] Write swift-version-49B95AFC49DCD68C.txt
Build of target: 'YouTubeKit' complete! (0.18s)
4328
28 /Users/admin/builder/spi-builder-workspace/.docs/b5i/youtubekit/v2.6.0
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/b5i/youtubekit/v2.6.0
File count: 4328
Doc size: 28.0MB
Preparing doc bundle ...
Uploading prod-b5i-youtubekit-v2.6.0-9d14facf.zip to s3://spi-docs-inbox/prod-b5i-youtubekit-v2.6.0-9d14facf.zip
Copying... [10%]
Copying... [20%]
Copying... [30%]
Copying... [40%]
Copying... [50%]
Copying... [60%]
Copying... [70%]
Copying... [81%]
Copying... [91%]
Copying... [100%]
Done.