patrickkfkan / patreon-dl

Patreon Downloader
116 stars 8 forks source link

Script hangs if post title starts with an emoji #3

Closed yuorfaec closed 11 months ago

yuorfaec commented 11 months ago

Windows 10 22H2 Node.js v20.10.0.

When a post starts with an emoji, the script hangs without any output or logging. Curiously, the console output shows about 10 more lines than the logger set at debug.

I've created a public and free patreon page that recreates the issue, here. The newest post downloads but there is nothing in status-cache.json or in any of the output folders that mention the 2nd post by name or ID. WIndows does support emoji in file and directory names. Let me know if other files are needed.

Console output:

Microsoft Windows [Version 10.0.19045.3803]
(c) Microsoft Corporation. All rights reserved.

C:\Users\me>patreon-dl -C "C:\Users\me\Downloads\example.conf" https://www.patreon.com/yuorfaec/posts

patreon-dl v1.1.1 Patreon Downloader

Dec 22 20:38:13: debug: InnertubeLoader: Load YouTube credentials from "C:\Users\me\AppData\Roaming\patreon-dl\Config\youtube-credentials.json"
Dec 22 20:38:13: debug: Created PostDownloader instance with config:  {
  type: 'post',
  targetURL: 'https://www.patreon.com/yuorfaec/posts',
  postFetch: { type: 'byUser', vanity: 'yuorfaec', filters: undefined },
  outDir: 'Y:\\test',
  useStatusCache: true,
  pathToFFmpeg: null,
  pathToYouTubeCredentials: 'C:\\Users\\me\\AppData\\Roaming\\patreon-dl\\Config\\youtube-credentials.json',
  dirNameFormat: {
    campaign: '{creator.vanity}[ - ]?{campaign.name}',
    content: '{content.id}[ - ]?{content.name}'
  },
  filenameFormat: { media: '{media.type}-{media.id}' },
  include: {
    lockedContent: true,
    campaignInfo: true,
    contentInfo: true,
    previewMedia: true,
    contentMedia: true,
    allMediaVariants: false
  },
  request: { maxRetries: 5, maxConcurrent: 10, minTime: 666 },
  fileExistsAction: { content: 'skip', info: 'saveAsCopyIfNewer', infoAPI: 'overwrite' }
}
Dec 22 20:38:13: info: PostDownloader: Targeting posts by 'yuorfaec'
Dec 22 20:38:13: debug: PostDownloader: Fetch initial data from URL "https://www.patreon.com/yuorfaec"
Dec 22 20:38:14: info: PostDownloader: Abort signal received
Dec 22 20:38:14: warn: PostDownloader: Page request aborted
Dec 22 20:38:14: info: PostDownloader aborted

C:\Users\me>patreon-dl -C "C:\Users\me\Downloads\example.conf" https://www.patreon.com/yuorfaec/posts

patreon-dl v1.1.1 Patreon Downloader

Dec 22 20:38:46: debug: InnertubeLoader: Load YouTube credentials from "C:\Users\me\AppData\Roaming\patreon-dl\Config\youtube-credentials.json"
Dec 22 20:38:46: debug: Created PostDownloader instance with config:  {
  type: 'post',
  targetURL: 'https://www.patreon.com/yuorfaec/posts',
  postFetch: { type: 'byUser', vanity: 'yuorfaec', filters: undefined },
  outDir: 'Y:\\test',
  useStatusCache: true,
  pathToFFmpeg: null,
  pathToYouTubeCredentials: 'C:\\Users\\me\\AppData\\Roaming\\patreon-dl\\Config\\youtube-credentials.json',
  dirNameFormat: {
    campaign: '{creator.vanity}[ - ]?{campaign.name}',
    content: '{content.id}[ - ]?{content.name}'
  },
  filenameFormat: { media: '{media.type}-{media.id}' },
  include: {
    lockedContent: true,
    campaignInfo: true,
    contentInfo: true,
    previewMedia: true,
    contentMedia: true,
    allMediaVariants: false
  },
  request: { maxRetries: 5, maxConcurrent: 10, minTime: 666 },
  fileExistsAction: { content: 'skip', info: 'saveAsCopyIfNewer', infoAPI: 'overwrite' }
}
Dec 22 20:38:46: info: PostDownloader: Targeting posts by 'yuorfaec'
Dec 22 20:38:46: debug: PostDownloader: Fetch initial data from URL "https://www.patreon.com/yuorfaec"
Dec 22 20:38:47: debug: PageParser: Parse initial data from https://www.patreon.com/yuorfaec
Dec 22 20:38:47: debug: PageParser: Trying pattern: /window\.patreon\s*?=\s*?({.+?});/gm
Dec 22 20:38:47: debug: PageParser: No match for pattern: /window\.patreon\s*?=\s*?({.+?});/gm
Dec 22 20:38:47: debug: PageParser: Trying pattern: /<script id="__NEXT_DATA__" type="application\/json">(.+)<\/script>/gm
Dec 22 20:38:47: debug: PostDownloader: Initial data: campaign ID '4839753'; current user ID '34188673'
Dec 22 20:38:47: info: PostDownloader: Fetch posts
Dec 22 20:38:47: debug: PostDownloader: Request initial posts from API URL "https://www.patreon.com/api/posts?include=campaign%2Caccess_rules%2Cattachments%2Caudio%2Caudio_preview.null%2Cimages%2Cmedia%2Cnative_video_insights%2Cpoll.choices%2Cpoll.current_user_responses.user%2Cpoll.current_user_responses.choice%2Cpoll.current_user_responses.poll%2Cuser%2Cuser_defined_tags%2Cti_checks&sort=-published_at&json-api-version=1.0&filter%5Bcontains_exclusive_posts%5D=true&filter%5Bis_draft%5D=false&filter%5Bcampaign_id%5D=4839753"
Dec 22 20:38:48: debug: PostParser: Parse API response of "https://www.patreon.com/api/posts?include=campaign%2Caccess_rules%2Cattachments%2Caudio%2Caudio_preview.null%2Cimages%2Cmedia%2Cnative_video_insights%2Cpoll.choices%2Cpoll.current_user_responses.user%2Cpoll.current_user_responses.choice%2Cpoll.current_user_responses.poll%2Cuser%2Cuser_defined_tags%2Cti_checks&sort=-published_at&json-api-version=1.0&filter%5Bcontains_exclusive_posts%5D=true&filter%5Bis_draft%5D=false&filter%5Bcampaign_id%5D=4839753"
Dec 22 20:38:48: debug: PostParser: 4 posts found - iterate and parse
Dec 22 20:38:48: debug: PostParser: Parse post #95146990
Dec 22 20:38:48: debug: PostParser: Find campaign item #4839753 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Find reward item #-1 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing reward #-1
Dec 22 20:38:48: debug: PostParser: Find reward item #15035946 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing reward #15035946
Dec 22 20:38:48: debug: PostParser: Find reward item #5434576 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing reward #5434576
Dec 22 20:38:48: debug: PostParser: Obtain creator info (user ID '34188673')
Dec 22 20:38:48: debug: PostParser: Find user item #34188673 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing user #34188673
Dec 22 20:38:48: debug: PostParser: Done parsing campaign #4839753
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio items from post #95146990 ('relationships.audio')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio preview items from post #95146990 ('relationships.audio_preview')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable images from post #95146990 ('relationships.images')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable attachments from post #95146990 ('relationships.attachments')
Dec 22 20:38:48: debug: PostParser: Find media item #258155918 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing media item #258155918 (type: video)
Dec 22 20:38:48: debug: PostParser: Done parsing post #95146990
Dec 22 20:38:48: debug: PostParser: Parse post #95146711
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio items from post #95146711 ('relationships.audio')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio preview items from post #95146711 ('relationships.audio_preview')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable images from post #95146711 ('relationships.images')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable attachments from post #95146711 ('relationships.attachments')
Dec 22 20:38:48: debug: PostParser: Find media item #258151381 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing media item #258151381 (type: video)
Dec 22 20:38:48: debug: PostParser: Done parsing post #95146711
Dec 22 20:38:48: debug: PostParser: Parse post #95145445
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio items from post #95145445 ('relationships.audio')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio preview items from post #95145445 ('relationships.audio_preview')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable images from post #95145445 ('relationships.images')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable attachments from post #95145445 ('relationships.attachments')
Dec 22 20:38:48: debug: PostParser: Find media item #258150376 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing media item #258150376 (type: video)
Dec 22 20:38:48: debug: PostParser: Done parsing post #95145445
Dec 22 20:38:48: debug: PostParser: Parse post #95145054
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio items from post #95145054 ('relationships.audio')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio preview items from post #95145054 ('relationships.audio_preview')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable images from post #95145054 ('relationships.images')
Dec 22 20:38:48: debug: PostParser: Parse images
Dec 22 20:38:48: debug: PostParser: Find media item #258140560 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing media item #258140560 (type: image)
Dec 22 20:38:48: debug: PostParser: All 1 downloadable images parsed
Dec 22 20:38:48: debug: PostParser: Fetch downloadable attachments from post #95145054 ('relationships.attachments')
Dec 22 20:38:48: debug: PostParser: Done parsing post #95145054
Dec 22 20:38:48: debug: PostParser: Campaign #4839753 found while parsing posts
Dec 22 20:38:48: debug: PostParser: Done parsing posts
Dec 22 20:38:48: info: PostDownloader: Save campaign info #4839753
Dec 22 20:38:48: debug: PostDownloader: Campaign directories:  {
  root: 'Y:\\test\\yuorfaec - yuorfaec',
  info: 'Y:\\test\\yuorfaec - yuorfaec\\campaign_info'
}
Dec 22 20:38:48: info: PostDownloader: Saved campaign summary to "Y:\test\yuorfaec - yuorfaec\campaign_info\info.txt"
Dec 22 20:38:48: debug: PostDownloader: Fetch campaign data from API URL "https://www.patreon.com/api/campaigns/4839753"
Dec 22 20:38:49: debug: PostDownloader: Fetch user data from API URL "https://www.patreon.com/api/user/34188673"
Dec 22 20:38:49: info: PostDownloader: Saved campaign API data to "Y:\test\yuorfaec - yuorfaec\campaign_info\campaign-api.json"
Dec 22 20:38:49: info: PostDownloader: Saved creator API data to "Y:\test\yuorfaec - yuorfaec\campaign_info\creator-api.json"
Dec 22 20:38:49: info: PostDownloader: Create download tasks for campaign #4839753 -> images
Dec 22 20:38:49: info: PostDownloader: Download begin (#0.0): [type: image; ID: #4839753] -> image-4839753.jpg
Dec 22 20:38:49: debug: Fetcher: Pipe "https://c10.patreonusercontent.com/4/patreon-media/p/campaign/4839753/450c325452cc41669e740b587acb6a13/eyJxIjoxMDAsIndlYnAiOjB9/1.jpg?token-time=1704585600&token-hash=QDfSKYNMr3CBd1p8ia-wQC0kZBZMQrVZGKqhKAlboro%3D" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.jpg.part"
Dec 22 20:38:49: debug: Fetcher: Commit "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.jpg.part" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.jpg; filesize: 15842 bytes
Dec 22 20:38:49: info: PostDownloader: Download complete (#0.0): "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.jpg"
Dec 22 20:38:50: info: PostDownloader: Download begin (#0.1): [type: image; ID: #4839753] -> image-4839753.webp
Dec 22 20:38:50: debug: Fetcher: Pipe "https://c10.patreonusercontent.com/4/patreon-media/p/campaign/4839753/50daf576b40243058b791c19f0b7acf2/eyJ3IjoxOTIwLCJ3ZSI6MX0%3D/1.png?token-time=1704326400&token-hash=Rl99n3HfIzYk9BHK4V02FnWRnnUuL20xIlVP0XIfx98%3D" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.webp.part"
Dec 22 20:38:50: debug: Fetcher: Commit "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.webp.part" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.webp; filesize: 2046 bytes
Dec 22 20:38:50: info: PostDownloader: Download complete (#0.1): "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.webp"
Dec 22 20:38:50: info: PostDownloader: Download begin (#0.2): [type: image; ID: #34188673] -> image-34188673.png
Dec 22 20:38:50: debug: Fetcher: Pipe "https://c8.patreon.com/3/200/34188673" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png.part"
Dec 22 20:38:50: debug: Fetcher: Commit "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png.part" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png; filesize: 3138 bytes
Dec 22 20:38:51: info: PostDownloader: Download complete (#0.2): "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png"
Dec 22 20:38:51: info: PostDownloader: Download begin (#0.3): [type: image; ID: #34188673] -> image-34188673 (1).png
Dec 22 20:38:51: debug: Fetcher: Pipe "https://c8.patreon.com/3/200/34188673" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png.part"
Dec 22 20:38:51: debug: FetcherDownloadTask: (saveAsCopyIfNewer) Compare "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png.part" with "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png": Files match
Dec 22 20:38:51: debug: Fetcher: Clean up "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png.part"
Dec 22 20:38:51: warn: PostDownloader: Download skipped (#0.3): Destination file exists with same content (Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png)
Dec 22 20:38:51: info: PostDownloader: Download batch complete (#0): 4 downloads; 3 completed; 0 errors; 1 skipped; 0 aborted
Dec 22 20:38:51: info: PostDownloader: Done saving campaign info
Dec 22 20:38:51: debug: PostDownloader: 4 posts fetched
Dec 22 20:38:51: debug: PostDownloader: Post directories: {
  root: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas',
  info: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\post_info',
  audio: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\audio',
  video: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\video',
  images: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\images',
  audioPreview: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\audio_preview',
  videoPreview: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\video_preview',
  imagePreviews: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\image_previews',
  attachments: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\attachments',
  embed: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\embed',
  statusCache: 'Y:\\test\\yuorfaec - yuorfaec\\.patreon-dl'
}
Dec 22 20:38:51: debug: "Y:\test\yuorfaec - yuorfaec\.patreon-dl\status-cache.json" does not exist. Start with empty data
Dec 22 20:38:51: debug: Status cache entry does not exist for post #95146990
Dec 22 20:38:51: info: PostDownloader: Download post #95146990 (alas)
Dec 22 20:38:51: info: PostDownloader: Save post info #95146990
Dec 22 20:38:52: info: PostDownloader: Saved post summary to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\info.txt"
Dec 22 20:38:52: info: PostDownloader: Saved post API data to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\post-api.json"
Dec 22 20:38:52: info: PostDownloader: Create download tasks for post #95146990 -> video
Dec 22 20:38:52: info: PostDownloader: Create download tasks for post #95146990 -> info elements
Dec 22 20:38:52: info: PostDownloader: Download batch created (#1): 4 downloads pending
Dec 22 20:38:52: info: PostDownloader: Download begin (#1.0): [type: video; ID: #258155918] -> video-258155918.mp4
Dec 22 20:38:52: debug: Fetcher: Pipe "https://stream.mux.com/00VNZXlRruj02S4sUT019U1Q1a6kxDFRB9LLj7lfiFHr01s/high.mp4?token=eyJhbGciOiJSUzI1NiIsImtpZCI6Ik5CY3o3Sk5RcUNmdDdWcmo5MWhra2lEY3Vyc2xtRGNmSU1oSFUzallZMDI0IiwidHlwIjoiSldUIn0.eyJzdWIiOiIwMFZOWlhsUnJ1ajAyUzRzVVQwMTlVMVExYTZreERGUkI5TExqN2xmaUZIcjAxcyIsImV4cCI6MTcwMzM4NjgwMCwiYXVkIjoidiIsInBsYXliYWNrX3Jlc3RyaWN0aW9uX2lkIjoiSXIwMkZtcXNxVW5NSXBFcUg4OU1kbHZXYTE1UXdPbzZkQ25lbEN0U0k5WUkifQ.msmi7niP1eKFRYws0vWFWyjYTSsync2GbFcDdM4ulWDIT0IcLMg2lMoCC-yTgxf3BTXyePq9sdZpUuqyl4FITT_5uaI-XVAyGNqiYgYOTf5tQVgNS9JLmDfEh7iB7RD3XgYZwWd1BsWzFxSvf7owTvVKcJq-rrME0cbmdlGuhBRNti3DwnpQL4X4DXayTX5EisDB41qcRzRi58ZWfqLkLISLqLllPZ33fMLUxowanbSo0u4Y-3O9METsCLTzUSK7V12i-TOpBIpEsB4fdNeL0UvCjqzqbTksSszPoNSHoEHhtppJDKNyoe3ZA2cm03YL0CBrrdmJWUMQJ_pB1XqPCA" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\video-258155918.mp4.part"
Dec 22 20:38:53: info: PostDownloader: Download begin (#1.1): [type: dummy; ID: #258155918] -> dummy-258155918-thumbnail.jpg
Dec 22 20:38:53: debug: Fetcher: Pipe "https://image.mux.com/00VNZXlRruj02S4sUT019U1Q1a6kxDFRB9LLj7lfiFHr01s/thumbnail.jpg?token=eyJhbGciOiJSUzI1NiIsImtpZCI6Ik5CY3o3Sk5RcUNmdDdWcmo5MWhra2lEY3Vyc2xtRGNmSU1oSFUzallZMDI0IiwidHlwIjoiSldUIn0.eyJzdWIiOiIwMFZOWlhsUnJ1ajAyUzRzVVQwMTlVMVExYTZreERGUkI5TExqN2xmaUZIcjAxcyIsImV4cCI6MTcwNTk3NzUyOCwiYXVkIjoidCIsInRpbWUiOjIuMH0.GW_yQpIRWLa2LvzA6J10O39nvXjqgbfu0HIVqYWMETRWQRSwFkQElbzkOh5Sspr00QYW0cKbYQXXVKxJ1dYl40BseQhzGkUToW4VBnNDtEndgixHAqrFgE0B9WtJnqFAyRrMe7rbh6cjyMuT3SNiKL31gU1BEs4IjwtPRZUKgA1cm7xoLUVuAw0WBrDNG8FO8UWBlD_l33N3tTMfVzbjm605taUBJ9ZkjrLWgUza9rIQWGqOFm0NlGJuxxv7XPaSlLQWl6gTXMhaDE3kFzHTTJ9oM-dFxhPmpq9kKSVD8MReMIhsPIl9VmyKTezkXd-ASlOJtf9gvnOE2YZfO7lCkg" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\dummy-258155918-thumbnail.jpg.part"
Dec 22 20:38:53: debug: Fetcher: Commit "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\dummy-258155918-thumbnail.jpg.part" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\dummy-258155918-thumbnail.jpg; filesize: 180273 bytes
Dec 22 20:38:53: info: PostDownloader: Download complete (#1.1): "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\dummy-258155918-thumbnail.jpg"
Dec 22 20:38:53: info: PostDownloader: Download begin (#1.2): [type: image; ID: #95146990] -> image-95146990.jpg
Dec 22 20:38:53: debug: Fetcher: Pipe "https://image.mux.com/00VNZXlRruj02S4sUT019U1Q1a6kxDFRB9LLj7lfiFHr01s/thumbnail.jpg?token=eyJhbGciOiJSUzI1NiIsImtpZCI6Ik5CY3o3Sk5RcUNmdDdWcmo5MWhra2lEY3Vyc2xtRGNmSU1oSFUzallZMDI0IiwidHlwIjoiSldUIn0.eyJzdWIiOiIwMFZOWlhsUnJ1ajAyUzRzVVQwMTlVMVExYTZreERGUkI5TExqN2xmaUZIcjAxcyIsImV4cCI6MTcwNTk3NzUyOCwiYXVkIjoidCIsInRpbWUiOjIuMH0.GW_yQpIRWLa2LvzA6J10O39nvXjqgbfu0HIVqYWMETRWQRSwFkQElbzkOh5Sspr00QYW0cKbYQXXVKxJ1dYl40BseQhzGkUToW4VBnNDtEndgixHAqrFgE0B9WtJnqFAyRrMe7rbh6cjyMuT3SNiKL31gU1BEs4IjwtPRZUKgA1cm7xoLUVuAw0WBrDNG8FO8UWBlD_l33N3tTMfVzbjm605taUBJ9ZkjrLWgUza9rIQWGqOFm0NlGJuxxv7XPaSlLQWl6gTXMhaDE3kFzHTTJ9oM-dFxhPmpq9kKSVD8MReMIhsPIl9VmyKTezkXd-ASlOJtf9gvnOE2YZfO7lCkg" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg.part"
Dec 22 20:38:53: debug: Fetcher: Commit "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg.part" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg; filesize: 180273 bytes
Dec 22 20:38:53: info: PostDownloader: Download complete (#1.2): "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg"
Dec 22 20:38:54: info: PostDownloader: Download begin (#1.3): [type: image; ID: #95146990] -> image-95146990 (1).jpg
Dec 22 20:38:54: debug: Fetcher: Pipe "https://image.mux.com/00VNZXlRruj02S4sUT019U1Q1a6kxDFRB9LLj7lfiFHr01s/thumbnail.jpg?token=eyJhbGciOiJSUzI1NiIsImtpZCI6Ik5CY3o3Sk5RcUNmdDdWcmo5MWhra2lEY3Vyc2xtRGNmSU1oSFUzallZMDI0IiwidHlwIjoiSldUIn0.eyJzdWIiOiIwMFZOWlhsUnJ1ajAyUzRzVVQwMTlVMVExYTZreERGUkI5TExqN2xmaUZIcjAxcyIsImV4cCI6MTcwNTk3NzUyOCwiYXVkIjoidCIsInRpbWUiOjIuMH0.GW_yQpIRWLa2LvzA6J10O39nvXjqgbfu0HIVqYWMETRWQRSwFkQElbzkOh5Sspr00QYW0cKbYQXXVKxJ1dYl40BseQhzGkUToW4VBnNDtEndgixHAqrFgE0B9WtJnqFAyRrMe7rbh6cjyMuT3SNiKL31gU1BEs4IjwtPRZUKgA1cm7xoLUVuAw0WBrDNG8FO8UWBlD_l33N3tTMfVzbjm605taUBJ9ZkjrLWgUza9rIQWGqOFm0NlGJuxxv7XPaSlLQWl6gTXMhaDE3kFzHTTJ9oM-dFxhPmpq9kKSVD8MReMIhsPIl9VmyKTezkXd-ASlOJtf9gvnOE2YZfO7lCkg" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg.part"
Dec 22 20:38:54: debug: FetcherDownloadTask: (saveAsCopyIfNewer) Compare "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg.part" with "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg": Files match
Dec 22 20:38:54: debug: Fetcher: Clean up "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg.part"
Dec 22 20:38:54: warn: PostDownloader: Download skipped (#1.3): Destination file exists with same content (Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg)
Dec 22 20:39:03: debug: Fetcher: Commit "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\video-258155918.mp4.part" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\video-258155918.mp4; filesize: 25054416 bytes
Dec 22 20:39:03: info: PostDownloader: Download complete (#1.0): "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\video-258155918.mp4"
Dec 22 20:39:03: info: PostDownloader: Download batch complete (#1): 4 downloads; 3 completed; 0 errors; 1 skipped; 0 aborted
Dec 22 20:39:03: debug: Update status cache for post #95146990
Dec 22 20:39:03: debug: PostDownloader: Post directories: {
  root: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146711 - 💔 broken',
  info: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146711 - 💔 broken\\post_info',
  audio: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146711 - 💔 broken\\audio',
  video: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146711 - 💔 broken\\video',
  images: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146711 - 💔 broken\\images',
  audioPreview: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146711 - 💔 broken\\audio_preview',
  videoPreview: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146711 - 💔 broken\\video_preview',
  imagePreviews: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146711 - 💔 broken\\image_previews',
  attachments: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146711 - 💔 broken\\attachments',
  embed: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146711 - 💔 broken\\embed',
  statusCache: 'Y:\\test\\yuorfaec - yuorfaec\\.patreon-dl'
}
Dec 22 20:39:03: debug: Status cache entry does not exist for post #95146711
Dec 22 20:39:03: info: PostDownloader: Download post #95146711 (💔 broken)
Dec 22 20:39:03: info: PostDownloader: Save post info #95146711

Debug output:


*************** LOG BEGIN DEC 22 2023 20:38:46 ***************
Dec 22 20:38:46: debug: InnertubeLoader: Load YouTube credentials from "C:\Users\me\AppData\Roaming\patreon-dl\Config\youtube-credentials.json"
Dec 22 20:38:46: debug: Created PostDownloader instance with config:  {
  type: 'post',
  targetURL: 'https://www.patreon.com/yuorfaec/posts',
  postFetch: { type: 'byUser', vanity: 'yuorfaec', filters: undefined },
  outDir: 'Y:\\test',
  useStatusCache: true,
  pathToFFmpeg: null,
  pathToYouTubeCredentials: 'C:\\Users\\me\\AppData\\Roaming\\patreon-dl\\Config\\youtube-credentials.json',
  dirNameFormat: {
    campaign: '{creator.vanity}[ - ]?{campaign.name}',
    content: '{content.id}[ - ]?{content.name}'
  },
  filenameFormat: { media: '{media.type}-{media.id}' },
  include: {
    lockedContent: true,
    campaignInfo: true,
    contentInfo: true,
    previewMedia: true,
    contentMedia: true,
    allMediaVariants: false
  },
  request: { maxRetries: 5, maxConcurrent: 10, minTime: 666 },
  fileExistsAction: { content: 'skip', info: 'saveAsCopyIfNewer', infoAPI: 'overwrite' }
}
Dec 22 20:38:46: info: PostDownloader: Targeting posts by 'yuorfaec'
Dec 22 20:38:46: debug: PostDownloader: Fetch initial data from URL "https://www.patreon.com/yuorfaec"
Dec 22 20:38:47: debug: PageParser: Parse initial data from https://www.patreon.com/yuorfaec
Dec 22 20:38:47: debug: PageParser: Trying pattern: /window\.patreon\s*?=\s*?({.+?});/gm
Dec 22 20:38:47: debug: PageParser: No match for pattern: /window\.patreon\s*?=\s*?({.+?});/gm
Dec 22 20:38:47: debug: PageParser: Trying pattern: /<script id="__NEXT_DATA__" type="application\/json">(.+)<\/script>/gm
Dec 22 20:38:47: debug: PostDownloader: Initial data: campaign ID '4839753'; current user ID '34188673'
Dec 22 20:38:47: info: PostDownloader: Fetch posts
Dec 22 20:38:47: debug: PostDownloader: Request initial posts from API URL "https://www.patreon.com/api/posts?include=campaign%2Caccess_rules%2Cattachments%2Caudio%2Caudio_preview.null%2Cimages%2Cmedia%2Cnative_video_insights%2Cpoll.choices%2Cpoll.current_user_responses.user%2Cpoll.current_user_responses.choice%2Cpoll.current_user_responses.poll%2Cuser%2Cuser_defined_tags%2Cti_checks&sort=-published_at&json-api-version=1.0&filter%5Bcontains_exclusive_posts%5D=true&filter%5Bis_draft%5D=false&filter%5Bcampaign_id%5D=4839753"
Dec 22 20:38:48: debug: PostParser: Parse API response of "https://www.patreon.com/api/posts?include=campaign%2Caccess_rules%2Cattachments%2Caudio%2Caudio_preview.null%2Cimages%2Cmedia%2Cnative_video_insights%2Cpoll.choices%2Cpoll.current_user_responses.user%2Cpoll.current_user_responses.choice%2Cpoll.current_user_responses.poll%2Cuser%2Cuser_defined_tags%2Cti_checks&sort=-published_at&json-api-version=1.0&filter%5Bcontains_exclusive_posts%5D=true&filter%5Bis_draft%5D=false&filter%5Bcampaign_id%5D=4839753"
Dec 22 20:38:48: debug: PostParser: 4 posts found - iterate and parse
Dec 22 20:38:48: debug: PostParser: Parse post #95146990
Dec 22 20:38:48: debug: PostParser: Find campaign item #4839753 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Find reward item #-1 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing reward #-1
Dec 22 20:38:48: debug: PostParser: Find reward item #15035946 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing reward #15035946
Dec 22 20:38:48: debug: PostParser: Find reward item #5434576 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing reward #5434576
Dec 22 20:38:48: debug: PostParser: Obtain creator info (user ID '34188673')
Dec 22 20:38:48: debug: PostParser: Find user item #34188673 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing user #34188673
Dec 22 20:38:48: debug: PostParser: Done parsing campaign #4839753
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio items from post #95146990 ('relationships.audio')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio preview items from post #95146990 ('relationships.audio_preview')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable images from post #95146990 ('relationships.images')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable attachments from post #95146990 ('relationships.attachments')
Dec 22 20:38:48: debug: PostParser: Find media item #258155918 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing media item #258155918 (type: video)
Dec 22 20:38:48: debug: PostParser: Done parsing post #95146990
Dec 22 20:38:48: debug: PostParser: Parse post #95146711
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio items from post #95146711 ('relationships.audio')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio preview items from post #95146711 ('relationships.audio_preview')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable images from post #95146711 ('relationships.images')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable attachments from post #95146711 ('relationships.attachments')
Dec 22 20:38:48: debug: PostParser: Find media item #258151381 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing media item #258151381 (type: video)
Dec 22 20:38:48: debug: PostParser: Done parsing post #95146711
Dec 22 20:38:48: debug: PostParser: Parse post #95145445
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio items from post #95145445 ('relationships.audio')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio preview items from post #95145445 ('relationships.audio_preview')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable images from post #95145445 ('relationships.images')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable attachments from post #95145445 ('relationships.attachments')
Dec 22 20:38:48: debug: PostParser: Find media item #258150376 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing media item #258150376 (type: video)
Dec 22 20:38:48: debug: PostParser: Done parsing post #95145445
Dec 22 20:38:48: debug: PostParser: Parse post #95145054
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio items from post #95145054 ('relationships.audio')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable audio preview items from post #95145054 ('relationships.audio_preview')
Dec 22 20:38:48: debug: PostParser: Fetch downloadable images from post #95145054 ('relationships.images')
Dec 22 20:38:48: debug: PostParser: Parse images
Dec 22 20:38:48: debug: PostParser: Find media item #258140560 in API response
Dec 22 20:38:48: debug: PostParser: Found - parse item data
Dec 22 20:38:48: debug: PostParser: Done parsing media item #258140560 (type: image)
Dec 22 20:38:48: debug: PostParser: All 1 downloadable images parsed
Dec 22 20:38:48: debug: PostParser: Fetch downloadable attachments from post #95145054 ('relationships.attachments')
Dec 22 20:38:48: debug: PostParser: Done parsing post #95145054
Dec 22 20:38:48: debug: PostParser: Campaign #4839753 found while parsing posts
Dec 22 20:38:48: debug: PostParser: Done parsing posts
Dec 22 20:38:48: info: PostDownloader: Save campaign info #4839753
Dec 22 20:38:48: debug: PostDownloader: Campaign directories:  {
  root: 'Y:\\test\\yuorfaec - yuorfaec',
  info: 'Y:\\test\\yuorfaec - yuorfaec\\campaign_info'
}
Dec 22 20:38:48: info: PostDownloader: Saved campaign summary to "Y:\test\yuorfaec - yuorfaec\campaign_info\info.txt"
Dec 22 20:38:48: debug: PostDownloader: Fetch campaign data from API URL "https://www.patreon.com/api/campaigns/4839753"
Dec 22 20:38:49: debug: PostDownloader: Fetch user data from API URL "https://www.patreon.com/api/user/34188673"
Dec 22 20:38:49: info: PostDownloader: Saved campaign API data to "Y:\test\yuorfaec - yuorfaec\campaign_info\campaign-api.json"
Dec 22 20:38:49: info: PostDownloader: Saved creator API data to "Y:\test\yuorfaec - yuorfaec\campaign_info\creator-api.json"
Dec 22 20:38:49: info: PostDownloader: Create download tasks for campaign #4839753 -> images
Dec 22 20:38:49: info: PostDownloader: Download begin (#0.0): [type: image; ID: #4839753] -> image-4839753.jpg
Dec 22 20:38:49: debug: Fetcher: Pipe "https://c10.patreonusercontent.com/4/patreon-media/p/campaign/4839753/450c325452cc41669e740b587acb6a13/eyJxIjoxMDAsIndlYnAiOjB9/1.jpg?token-time=1704585600&token-hash=QDfSKYNMr3CBd1p8ia-wQC0kZBZMQrVZGKqhKAlboro%3D" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.jpg.part"
Dec 22 20:38:49: debug: Fetcher: Commit "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.jpg.part" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.jpg; filesize: 15842 bytes
Dec 22 20:38:49: info: PostDownloader: Download complete (#0.0): "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.jpg"
Dec 22 20:38:50: info: PostDownloader: Download begin (#0.1): [type: image; ID: #4839753] -> image-4839753.webp
Dec 22 20:38:50: debug: Fetcher: Pipe "https://c10.patreonusercontent.com/4/patreon-media/p/campaign/4839753/50daf576b40243058b791c19f0b7acf2/eyJ3IjoxOTIwLCJ3ZSI6MX0%3D/1.png?token-time=1704326400&token-hash=Rl99n3HfIzYk9BHK4V02FnWRnnUuL20xIlVP0XIfx98%3D" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.webp.part"
Dec 22 20:38:50: debug: Fetcher: Commit "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.webp.part" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.webp; filesize: 2046 bytes
Dec 22 20:38:50: info: PostDownloader: Download complete (#0.1): "Y:\test\yuorfaec - yuorfaec\campaign_info\image-4839753.webp"
Dec 22 20:38:50: info: PostDownloader: Download begin (#0.2): [type: image; ID: #34188673] -> image-34188673.png
Dec 22 20:38:50: debug: Fetcher: Pipe "https://c8.patreon.com/3/200/34188673" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png.part"
Dec 22 20:38:50: debug: Fetcher: Commit "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png.part" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png; filesize: 3138 bytes
Dec 22 20:38:51: info: PostDownloader: Download complete (#0.2): "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png"
Dec 22 20:38:51: info: PostDownloader: Download begin (#0.3): [type: image; ID: #34188673] -> image-34188673 (1).png
Dec 22 20:38:51: debug: Fetcher: Pipe "https://c8.patreon.com/3/200/34188673" to "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png.part"
Dec 22 20:38:51: debug: FetcherDownloadTask: (saveAsCopyIfNewer) Compare "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png.part" with "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png": Files match
Dec 22 20:38:51: debug: Fetcher: Clean up "Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png.part"
Dec 22 20:38:51: warn: PostDownloader: Download skipped (#0.3): Destination file exists with same content (Y:\test\yuorfaec - yuorfaec\campaign_info\image-34188673.png)
Dec 22 20:38:51: info: PostDownloader: Download batch complete (#0): 4 downloads; 3 completed; 0 errors; 1 skipped; 0 aborted
Dec 22 20:38:51: info: PostDownloader: Done saving campaign info
Dec 22 20:38:51: debug: PostDownloader: 4 posts fetched
Dec 22 20:38:51: debug: PostDownloader: Post directories: {
  root: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas',
  info: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\post_info',
  audio: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\audio',
  video: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\video',
  images: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\images',
  audioPreview: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\audio_preview',
  videoPreview: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\video_preview',
  imagePreviews: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\image_previews',
  attachments: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\attachments',
  embed: 'Y:\\test\\yuorfaec - yuorfaec\\posts\\95146990 - alas\\embed',
  statusCache: 'Y:\\test\\yuorfaec - yuorfaec\\.patreon-dl'
}
Dec 22 20:38:51: debug: "Y:\test\yuorfaec - yuorfaec\.patreon-dl\status-cache.json" does not exist. Start with empty data
Dec 22 20:38:51: debug: Status cache entry does not exist for post #95146990
Dec 22 20:38:51: info: PostDownloader: Download post #95146990 (alas)
Dec 22 20:38:51: info: PostDownloader: Save post info #95146990
Dec 22 20:38:52: info: PostDownloader: Saved post summary to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\info.txt"
Dec 22 20:38:52: info: PostDownloader: Saved post API data to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\post-api.json"
Dec 22 20:38:52: info: PostDownloader: Create download tasks for post #95146990 -> video
Dec 22 20:38:52: info: PostDownloader: Create download tasks for post #95146990 -> info elements
Dec 22 20:38:52: info: PostDownloader: Download batch created (#1): 4 downloads pending
Dec 22 20:38:52: info: PostDownloader: Download begin (#1.0): [type: video; ID: #258155918] -> video-258155918.mp4
Dec 22 20:38:52: debug: Fetcher: Pipe "https://stream.mux.com/00VNZXlRruj02S4sUT019U1Q1a6kxDFRB9LLj7lfiFHr01s/high.mp4?token=eyJhbGciOiJSUzI1NiIsImtpZCI6Ik5CY3o3Sk5RcUNmdDdWcmo5MWhra2lEY3Vyc2xtRGNmSU1oSFUzallZMDI0IiwidHlwIjoiSldUIn0.eyJzdWIiOiIwMFZOWlhsUnJ1ajAyUzRzVVQwMTlVMVExYTZreERGUkI5TExqN2xmaUZIcjAxcyIsImV4cCI6MTcwMzM4NjgwMCwiYXVkIjoidiIsInBsYXliYWNrX3Jlc3RyaWN0aW9uX2lkIjoiSXIwMkZtcXNxVW5NSXBFcUg4OU1kbHZXYTE1UXdPbzZkQ25lbEN0U0k5WUkifQ.msmi7niP1eKFRYws0vWFWyjYTSsync2GbFcDdM4ulWDIT0IcLMg2lMoCC-yTgxf3BTXyePq9sdZpUuqyl4FITT_5uaI-XVAyGNqiYgYOTf5tQVgNS9JLmDfEh7iB7RD3XgYZwWd1BsWzFxSvf7owTvVKcJq-rrME0cbmdlGuhBRNti3DwnpQL4X4DXayTX5EisDB41qcRzRi58ZWfqLkLISLqLllPZ33fMLUxowanbSo0u4Y-3O9METsCLTzUSK7V12i-TOpBIpEsB4fdNeL0UvCjqzqbTksSszPoNSHoEHhtppJDKNyoe3ZA2cm03YL0CBrrdmJWUMQJ_pB1XqPCA" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\video-258155918.mp4.part"
Dec 22 20:38:53: info: PostDownloader: Download begin (#1.1): [type: dummy; ID: #258155918] -> dummy-258155918-thumbnail.jpg
Dec 22 20:38:53: debug: Fetcher: Pipe "https://image.mux.com/00VNZXlRruj02S4sUT019U1Q1a6kxDFRB9LLj7lfiFHr01s/thumbnail.jpg?token=eyJhbGciOiJSUzI1NiIsImtpZCI6Ik5CY3o3Sk5RcUNmdDdWcmo5MWhra2lEY3Vyc2xtRGNmSU1oSFUzallZMDI0IiwidHlwIjoiSldUIn0.eyJzdWIiOiIwMFZOWlhsUnJ1ajAyUzRzVVQwMTlVMVExYTZreERGUkI5TExqN2xmaUZIcjAxcyIsImV4cCI6MTcwNTk3NzUyOCwiYXVkIjoidCIsInRpbWUiOjIuMH0.GW_yQpIRWLa2LvzA6J10O39nvXjqgbfu0HIVqYWMETRWQRSwFkQElbzkOh5Sspr00QYW0cKbYQXXVKxJ1dYl40BseQhzGkUToW4VBnNDtEndgixHAqrFgE0B9WtJnqFAyRrMe7rbh6cjyMuT3SNiKL31gU1BEs4IjwtPRZUKgA1cm7xoLUVuAw0WBrDNG8FO8UWBlD_l33N3tTMfVzbjm605taUBJ9ZkjrLWgUza9rIQWGqOFm0NlGJuxxv7XPaSlLQWl6gTXMhaDE3kFzHTTJ9oM-dFxhPmpq9kKSVD8MReMIhsPIl9VmyKTezkXd-ASlOJtf9gvnOE2YZfO7lCkg" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\dummy-258155918-thumbnail.jpg.part"
Dec 22 20:38:53: debug: Fetcher: Commit "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\dummy-258155918-thumbnail.jpg.part" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\dummy-258155918-thumbnail.jpg; filesize: 180273 bytes
Dec 22 20:38:53: info: PostDownloader: Download complete (#1.1): "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\dummy-258155918-thumbnail.jpg"
Dec 22 20:38:53: info: PostDownloader: Download begin (#1.2): [type: image; ID: #95146990] -> image-95146990.jpg
Dec 22 20:38:53: debug: Fetcher: Pipe "https://image.mux.com/00VNZXlRruj02S4sUT019U1Q1a6kxDFRB9LLj7lfiFHr01s/thumbnail.jpg?token=eyJhbGciOiJSUzI1NiIsImtpZCI6Ik5CY3o3Sk5RcUNmdDdWcmo5MWhra2lEY3Vyc2xtRGNmSU1oSFUzallZMDI0IiwidHlwIjoiSldUIn0.eyJzdWIiOiIwMFZOWlhsUnJ1ajAyUzRzVVQwMTlVMVExYTZreERGUkI5TExqN2xmaUZIcjAxcyIsImV4cCI6MTcwNTk3NzUyOCwiYXVkIjoidCIsInRpbWUiOjIuMH0.GW_yQpIRWLa2LvzA6J10O39nvXjqgbfu0HIVqYWMETRWQRSwFkQElbzkOh5Sspr00QYW0cKbYQXXVKxJ1dYl40BseQhzGkUToW4VBnNDtEndgixHAqrFgE0B9WtJnqFAyRrMe7rbh6cjyMuT3SNiKL31gU1BEs4IjwtPRZUKgA1cm7xoLUVuAw0WBrDNG8FO8UWBlD_l33N3tTMfVzbjm605taUBJ9ZkjrLWgUza9rIQWGqOFm0NlGJuxxv7XPaSlLQWl6gTXMhaDE3kFzHTTJ9oM-dFxhPmpq9kKSVD8MReMIhsPIl9VmyKTezkXd-ASlOJtf9gvnOE2YZfO7lCkg" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg.part"
Dec 22 20:38:53: debug: Fetcher: Commit "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg.part" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg; filesize: 180273 bytes
Dec 22 20:38:53: info: PostDownloader: Download complete (#1.2): "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg"
Dec 22 20:38:54: info: PostDownloader: Download begin (#1.3): [type: image; ID: #95146990] -> image-95146990 (1).jpg
Dec 22 20:38:54: debug: Fetcher: Pipe "https://image.mux.com/00VNZXlRruj02S4sUT019U1Q1a6kxDFRB9LLj7lfiFHr01s/thumbnail.jpg?token=eyJhbGciOiJSUzI1NiIsImtpZCI6Ik5CY3o3Sk5RcUNmdDdWcmo5MWhra2lEY3Vyc2xtRGNmSU1oSFUzallZMDI0IiwidHlwIjoiSldUIn0.eyJzdWIiOiIwMFZOWlhsUnJ1ajAyUzRzVVQwMTlVMVExYTZreERGUkI5TExqN2xmaUZIcjAxcyIsImV4cCI6MTcwNTk3NzUyOCwiYXVkIjoidCIsInRpbWUiOjIuMH0.GW_yQpIRWLa2LvzA6J10O39nvXjqgbfu0HIVqYWMETRWQRSwFkQElbzkOh5Sspr00QYW0cKbYQXXVKxJ1dYl40BseQhzGkUToW4VBnNDtEndgixHAqrFgE0B9WtJnqFAyRrMe7rbh6cjyMuT3SNiKL31gU1BEs4IjwtPRZUKgA1cm7xoLUVuAw0WBrDNG8FO8UWBlD_l33N3tTMfVzbjm605taUBJ9ZkjrLWgUza9rIQWGqOFm0NlGJuxxv7XPaSlLQWl6gTXMhaDE3kFzHTTJ9oM-dFxhPmpq9kKSVD8MReMIhsPIl9VmyKTezkXd-ASlOJtf9gvnOE2YZfO7lCkg" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg.part"
Dec 22 20:38:54: debug: FetcherDownloadTask: (saveAsCopyIfNewer) Compare "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg.part" with "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg": Files match
Dec 22 20:38:54: debug: Fetcher: Clean up "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg.part"
Dec 22 20:38:54: warn: PostDownloader: Download skipped (#1.3): Destination file exists with same content (Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\post_info\image-95146990.jpg)
Dec 22 20:39:03: debug: Fetcher: Commit "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\video-258155918.mp4.part" to "Y:\test\yuorfaec - yuorfaec\posts\95146990 - alas\video\video-258155918.mp4; filesize: 25054416 bytes
patrickkfkan commented 11 months ago

Thanks for the detailed report. I am able to reproduce this on Windows (OTOH it works fine in Linux). I'll see if I can fix this soon.

patrickkfkan commented 11 months ago

OK, narrowed this down to:

https://github.com/nodejs/node/issues/48673

Tested with Node.js v18.19 (LTS) and v21.5 (Current non-LTS) on Windows. Both worked fine.

So this is not a bug with patreon-dl itself, but with current Node.js v20 LTS Windows version. Until v20 gets updated with a fix, use v18 or v21.5.

yuorfaec commented 11 months ago

Fascinating. I tried node 20.10 on ubuntu 20.04 and node 21.5 on win 10 22H2. Both are working as intended! Thanks for the research. I'm fine with closing/resolving/workaround'ing this issue.

patrickkfkan commented 11 months ago

Appreciate the confirmation!