antp wrote: 2025-07-22 14:34:45
When I do requests on FilmAffinity with the Postman application, using the same parameters as AMC, it usually works, so I'm still investigating why it does not work in AMC. I don't know yet if they block it on purpose or if it is a side effect of some other setting, or collateral damage of some bot-protection (like Cloudflare).
If you try to use AMC's user-agent in cURL, does it work? If so, that could be an acceptable solution, as they could block it in case they want to explicitly block AMC.
curl.exe -I --tls-max 1.2 --http1.1 -v "
https://www.filmaffinity.com/es/film811435.html" -H "Accept: text/html, */*" -H "Accept-Language: it" -H "DNT: 1" -H "Priority: u=0, i" -H "Sec-Ch-Ua: \"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Google Chrome\";v=\"138\"" -H "Sec-Ch-Ua-Mobile: ?0" -H "Sec-Ch-Ua-Platform: \"Windows\"" -H "Sec-Fetch-Dest: Document" -H "Sec-Fetch-Mode: Navigate" -H "Sec-Fetch-Site: None" -H "Sec-Fetch-User: ?1" -H "Upgrade-Insecure-Requests: 1" -H "
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
Note: Using embedded CA bundle, for proxies (231212 bytes)
* Host
www.filmaffinity.com:443 was resolved.
* IPv6: (none)
* IPv4: 172.67.74.202, 104.26.0.105, 104.26.1.105
* Trying 172.67.74.202:443...
* ALPN: curl offers http/1.1
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* CAfile: c:\myprograms\curl\curl-ca-bundle.crt
* CApath: none
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-ECDSA-CHACHA20-POLY1305 / [blank] / UNDEF
* ALPN: server accepted http/1.1
* Server certificate:
* subject: CN=filmaffinity.com
* start date: Jun 27 23:39:25 2025 GMT
* expire date: Sep 26 00:39:19 2025 GMT
* subjectAltName: host "
www.filmaffinity.com" matched cert's "*.filmaffinity.com"
* issuer: C=US; O=Google Trust Services; CN=WE1
* SSL certificate verify ok.
* Certificate level 0: Public key type ? (256/128 Bits/secBits), signed using ecdsa-with-SHA256
* Certificate level 1: Public key type ? (256/128 Bits/secBits), signed using ecdsa-with-SHA384
* Certificate level 2: Public key type ? (384/192 Bits/secBits), signed using ecdsa-with-SHA384
* Connected to
www.filmaffinity.com (172.67.74.202) port 443
* using HTTP/1.x
> HEAD /es/film811435.html HTTP/1.1
> Host:
www.filmaffinity.com
> Accept: text/html, */*
> Accept-Language: it
> DNT: 1
> Priority: u=0, i
> Sec-Ch-Ua: "Not)A;Brand";v="8", "Chromium";v="138", "Google Chrome";v="138"
> Sec-Ch-Ua-Mobile: ?0
> Sec-Ch-Ua-Platform: "Windows"
> Sec-Fetch-Dest: Document
> Sec-Fetch-Mode: Navigate
> Sec-Fetch-Site: None
> Sec-Fetch-User: ?1
> Upgrade-Insecure-Requests: 1
> User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36
>
* Request completely sent off
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
curl.exe -I --tls-max 1.2 --http1.1 -v "
https://www.filmaffinity.com/es/film811435.html" -H "Accept: text/html, */*" -H "Accept-Language: it" -H "DNT: 1" -H "Priority: u=0, i" -H "Sec-Ch-Ua: \"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Google Chrome\";v=\"138\"" -H "Sec-Ch-Ua-Mobile: ?0" -H "Sec-Ch-Ua-Platform: \"Windows\"" -H "Sec-Fetch-Dest: Document" -H "Sec-Fetch-Mode: Navigate" -H "Sec-Fetch-Site: None" -H "Sec-Fetch-User: ?1" -H "Upgrade-Insecure-Requests: 1" -H "
Mozilla/5.0 (compatible; Ant Movie Catalog)"
Note: Using embedded CA bundle, for proxies (231212 bytes)
* Host
www.filmaffinity.com:443 was resolved.
* IPv6: (none)
* IPv4: 172.67.74.202, 104.26.0.105, 104.26.1.105
* Trying 172.67.74.202:443...
* ALPN: curl offers http/1.1
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* CAfile: c:\myprograms\curl\curl-ca-bundle.crt
* CApath: none
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-ECDSA-CHACHA20-POLY1305 / [blank] / UNDEF
* ALPN: server accepted http/1.1
* Server certificate:
* subject: CN=filmaffinity.com
* start date: Jun 27 23:39:25 2025 GMT
* expire date: Sep 26 00:39:19 2025 GMT
* subjectAltName: host "
www.filmaffinity.com" matched cert's "*.filmaffinity.com"
* issuer: C=US; O=Google Trust Services; CN=WE1
* SSL certificate verify ok.
* Certificate level 0: Public key type ? (256/128 Bits/secBits), signed using ecdsa-with-SHA256
* Certificate level 1: Public key type ? (256/128 Bits/secBits), signed using ecdsa-with-SHA384
* Certificate level 2: Public key type ? (384/192 Bits/secBits), signed using ecdsa-with-SHA384
* Connected to
www.filmaffinity.com (172.67.74.202) port 443
* using HTTP/1.x
> HEAD /es/film811435.html HTTP/1.1
> Host:
www.filmaffinity.com
> User-Agent: curl/8.11.1
> Accept: text/html, */*
> Accept-Language: it
> DNT: 1
> Priority: u=0, i
> Sec-Ch-Ua: "Not)A;Brand";v="8", "Chromium";v="138", "Google Chrome";v="138"
> Sec-Ch-Ua-Mobile: ?0
> Sec-Ch-Ua-Platform: "Windows"
> Sec-Fetch-Dest: Document
> Sec-Fetch-Mode: Navigate
> Sec-Fetch-Site: None
> Sec-Fetch-User: ?1
> Upgrade-Insecure-Requests: 1
>
* Request completely sent off
< HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
I managed to use the same http headers (also user-agent, of course) in curl and AMC and with the 100% exact headers I get 200 with curl and 403 with FilmAffinity (you can see I forced http 1.1 and tls 1.2, as AMC does). MAYBE FilmAffinity is using JA3 and JA4+ techniques to stop bots but I think their problem is with IA (Gemini, ChatGpt, ...) and not with AMC (that is, blocking AMC is a side effect). JA3 and JA4+ (
Cloudflare,
Amazon AWS) create a unique fingerprint for the client. MAYBE the problem could be with libeay32.dll and ssleay32.dll and all the handshake during https connection but I should install Wireshark for further analysis and I don't want ...
If you think the culprit is JA4+/fingerprints, MAYBE
this could help to "validate" AMC at Cloudflare.
Note:
https://roundproxies.com/blog/what-is-tls-fingerprint/ "Mixing inconsistent parameters – If your User‑Agent screams “Chrome 122” but your cipher list matches Safari, expect a block.".