Skip to content

[Facebook] Issues with image extraction from posts (single/multi-image, groups/events) #9286

Description

@imler

Hi, I would like to report several issues related to downloading images from Facebook posts. I hope you’ll be able to address them, as there are clearly some inconsistencies in the current behavior.

Posts may contain either a single image or multiple images, and each case has its own different issues.

Use the following two links as examples:

1. Single-image posts

When a post contains only one image, instead of downloading that specific image, gallery-dl starts downloading many unrelated images. It appears to iterate through the entire photo collection (from newest to oldest) and continues indefinitely until manually interrupted.

❯ gallery-dl --write-metadata "https://www.facebook.com/MuzeumPlakatuwWilanowie/posts/1487355773175184"

./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493358485908246.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493358442574917.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493358385908256.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493358372574924.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493358342574927.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493358242574937.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493358229241605.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493358205908274.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493354802575281.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493354762575285.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493354729241955.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493354669241961.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493354655908629.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M… w Warszawie/Photos (a.627044269206343)/1493354612575300.jpg^C
KeyboardInterrupt

2. Multi-image posts

When a post contains multiple images, it is treated as a set. However, only the first few images are downloaded, while the remaining ones are skipped entirely. This behavior is misleading, as it suggests that all images have been successfully downloaded.

❯ gallery-dl --write-metadata "https://www.facebook.com/MuzeumPlakatuwWilanowie/posts/1493363835907711"

./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354802575281.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354519241976.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354499241978.jpg
[facebook][info] Detected jump to the beginning of the set. (1493354499241978 -> 1493354612575300)

When the extractor.facebook.loop=true option is enabled, the remaining images are eventually downloaded. However, the process repeatedly reports “Detected jump to the beginning of the set”. The same behavior occurs when downloading other types of sets (e.g., albums with /media/set in the URL).

❯ gallery-dl --write-metadata "https://www.facebook.com/MuzeumPlakatuwWilanowie/posts/1493363835907711" -o extractor.facebook.loop=true

./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354802575281.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354519241976.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354499241978.jpg
[facebook][info] Detected jump to the beginning of the set. (1493354499241978 -> 1493354612575300)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354612575300.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354472575314.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354389241989.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354379241990.jpg
[facebook][info] Detected jump to the beginning of the set. (1493354379241990 -> 1493354412575320)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354412575320.jpg
[facebook][info] Detected jump to the beginning of the set. (1493354412575320 -> 1493354562575305)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354562575305.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354449241983.jpg
[facebook][info] Detected jump to the beginning of the set. (1493354449241983 -> 1493354655908629)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354655908629.jpg
[facebook][info] Detected jump to the beginning of the set. (1493354655908629 -> 1493354669241961)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354669241961.jpg
[facebook][info] Detected jump to the beginning of the set. (1493354669241961 -> 1493354729241955)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354729241955.jpg
[facebook][info] Detected jump to the beginning of the set. (1493354729241955 -> 1493354762575285)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354762575285.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493354542575307.jpg
[facebook][info] Detected jump to the beginning of the set. (1493354542575307 -> 1493358205908274)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493358205908274.jpg
[facebook][info] Detected jump to the beginning of the set. (1493358205908274 -> 1493358242574937)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493358242574937.jpg
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493358229241605.jpg
[facebook][info] Detected jump to the beginning of the set. (1493358229241605 -> 1493358342574927)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493358342574927.jpg
[facebook][info] Detected jump to the beginning of the set. (1493358342574927 -> 1493358372574924)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493358372574924.jpg
[facebook][info] Detected jump to the beginning of the set. (1493358372574924 -> 1493358385908256)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493358385908256.jpg
[facebook][info] Detected jump to the beginning of the set. (1493358385908256 -> 1493358442574917)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493358442574917.jpg
[facebook][info] Detected jump to the beginning of the set. (1493358442574917 -> 1493358485908246)
./gallery-dl/facebook/Muzeum Plakatu w Wilanowie. Oddział M…Warszawie's post (pcb.1493363835907711)/1493358485908246.jpg

3. Support for posts in groups and event pages

It would be very useful to support downloading images from posts in public groups and event pages. At first glance, these posts appear structurally similar to regular posts, so it may be possible to support them with only minimal adjustments. Hopefully, it's just a matter of wiring existing code to new path patterns.

Here are example URLs:

In the case of groups, there are two interchangeable URL formats (permalink and posts). You can swap them either way, and these links still work.

❯ gallery-dl --write-metadata "https://www.facebook.com/events/348681961478540/?post_id=394877760192293"
[gallery-dl][error] Unsupported URL 'https://www.facebook.com/events/348681961478540/?post_id=394877760192293'

❯ gallery-dl --write-metadata "https://www.facebook.com/events/348681961478540/?post_id=394451713568231"
[gallery-dl][error] Unsupported URL 'https://www.facebook.com/events/348681961478540/?post_id=394451713568231'

❯ gallery-dl --write-metadata "https://www.facebook.com/groups/872288789580226/permalink/3584413751701036"
[gallery-dl][error] Unsupported URL 'https://www.facebook.com/groups/872288789580226/permalink/3584413751701036'

❯ gallery-dl --write-metadata "https://www.facebook.com/groups/872288789580226/posts/3584411141701297"
[gallery-dl][error] Unsupported URL 'https://www.facebook.com/groups/872288789580226/posts/3584411141701297'

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions