[UPD ES] Filmaffinity 4.0

If you made a script you can offer it to the others here, or ask help to improve it. You can also report here bugs & problems with existing scripts.
Garada
Posts: 26
Joined: 2025-08-10 12:39:21

Re: [UPD ES] Filmaffinity 4.0

Post by Garada »

¿Has revisado la configuración del programa?

Image
Radagast
Posts: 64
Joined: 2016-04-22 16:07:15

Re: [UPD ES] Filmaffinity 4.0

Post by Radagast »

carlesaran wrote: 2025-09-08 09:49:21 Hola:
Una consulta, en el script antiguo la foto de la caratula no se donde la guardaba, pero actualmente en el nuevo me lo guarda en la carpeta
Catalogo y hay un montón de imágenes, siendo un problema con el listado de peliduras que tengo guardado.
No sería posible que lo guardara en el mismo sitio que lo hacia antiguamente.
Gracias y un saludo.
Como te indica Garada eso no depende del script sino de la configuración del programa. Si estás utilizando el portable que yo subí las guarda así si no lo has cambiado. Es la forma que utilizo yo ya que si se guardan en el mismo archivo de catalogo se hace muy pesado cuando tienes miles de películas, y como a veces le paso el archivo a amigos para que se lo miren me es más cómodo.

Tienes 4 opciones:
1- en el mismo archivo del catalogo
2- en la misma carpeta del archivo del catalogo (la que tienes ahora)
3- en una carpeta llamada PICTURES ubicada en la carpeta del catalogo
4- o solo enlazada a la portada original

La que tu quieres es la 1, aunque supongo que después de cambiar la opción tendrás que importar las caratulas de nuevo para las películas que las tengan en la carpeta si quieres que la tengan en el archivo catalogo.
carlesaran
Posts: 21
Joined: 2011-11-10 17:06:31

Re: [UPD ES] Filmaffinity 4.0

Post by carlesaran »

Gracias Garada y Radagast, todas las caratulas están en el sitio que quería.
Un saludo
carlesaran
Posts: 21
Joined: 2011-11-10 17:06:31

Re: [UPD ES] Filmaffinity 4.0

Post by carlesaran »

Y abusando un poco de vuestra amabilidad desearía saber como "arreglar" el problema de Demasiadas solicitudes.
Como información detecto que si uso el navegador Opera (con VPN) y con TOR Browser no ocurre, pero claro el programa AMC va directo a abrir
el Google Chrome.
Haber si me podéis ayudar.
Gracias y un saludo.
Garada
Posts: 26
Joined: 2025-08-10 12:39:21

Re: [UPD ES] Filmaffinity 4.0

Post by Garada »

Al principio del fichero ExternalCurlHandler.pas hay una linea que empieza por

Code: Select all

delayBetweenRequest = numero;
La palabra número es el tiempo se que espera entre petición y petición para que Filmaffinity no se mosquee porque las consultas son muy rápidas para hacerlas una persona. El valor es en milisegundos (1000 = 1 segundo), yo lo tengo en 2001 (2 segundos y una milésima) y no he tenido problemas pero no le doy tanta caña.

Code: Select all

delayBetweenRequest = 2001;
Revisa si lo tienes muy bajo.

En el siguiente post, Radagast, habla que ha usado tiempos más cortos sin problema.
viewtopic.php?p=92910#p92910

La parte del Chrome no la entiendo 😕
carlesaran
Posts: 21
Joined: 2011-11-10 17:06:31

Re: [UPD ES] Filmaffinity 4.0

Post by carlesaran »

Efectivamente lo tenia en 2001, siguiendo el consejo de Radagast lo he puesto a 601, veremos como va.
En cuanto a lo Chrome es lo siguiente:
Cuando en el programa AMC intento incluir una pelicula y me sale "No encontrada" arranco Chrome y la pido en Filmaffinity
y me sale "demasiadas solicitudes".
Si hago lo mismo, pero a través de Tor Browser o de Opera me admite la solicitud y me presenta la pelicula.
Gracias y un saludo.
Garada
Posts: 26
Joined: 2025-08-10 12:39:21

Re: [UPD ES] Filmaffinity 4.0

Post by Garada »

carlesaran wrote: 2025-09-11 10:37:56 Efectivamente lo tenia en 2001, siguiendo el consejo de Radagast lo he puesto a 601, veremos como va.
En cuanto a lo Chrome es lo siguiente:
Cuando en el programa AMC intento incluir una pelicula y me sale "No encontrada" arranco Chrome y la pido en Filmaffinity
y me sale "demasiadas solicitudes".
Si hago lo mismo, pero a través de Tor Browser o de Opera me admite la solicitud y me presenta la pelicula.
Gracias y un saludo.
Ok, ya entendí. Olvida lo de la línea, si pones un número más pequeño se produce lo que pretendes evitar que se hagan solicitudes a Filmaffinity demasiado rápido. Déjalo a 2001 como estaba.

Si te sale al abrir el navegador, el problema es que tu IP (dirección en internet) ya está bloqueada previamente y cualquier consulta se bloqueará a menos que te ocultes (Opera con VPN o Tor)
La solución sería reiniciar el router para que te den una IP nueva (Apagarlo, esperar un par de minutos y encender)

Ahora hablando en general, creo que para el problema de demasiadas solicitudes se puede mirar algún proxy http gratuito que vaya bien y añadirlo al script
Radagast
Posts: 64
Joined: 2016-04-22 16:07:15

Re: [UPD ES] Filmaffinity 4.0

Post by Radagast »

carlesaran wrote: 2025-09-11 10:37:56 Efectivamente lo tenia en 2001, siguiendo el consejo de Radagast lo he puesto a 601, veremos como va.
En cuanto a lo Chrome es lo siguiente:
Cuando en el programa AMC intento incluir una pelicula y me sale "No encontrada" arranco Chrome y la pido en Filmaffinity
y me sale "demasiadas solicitudes".
Si hago lo mismo, pero a través de Tor Browser o de Opera me admite la solicitud y me presenta la pelicula.
Gracias y un saludo.
Como ya comenté creo que el problema se produce cuando se utilizan palabras comunes en el script que arrojan muchos resultados y posiblemente también si se actualizan películas en bloque utilizando la opción "DontAsk" del script activada.

Como te indica Garada cuanto más bajes el valor más se agrava el problema, por contra cuanto más lo subas más lento irá el script. Se trata de encontrar un valor lo más bajo posible sin que te salte el error. Este valor dependerá para cada uno de la forma en que se busquen las películas, si se hace muy seguido, si se utiliza parte del titulo, etc...
Por ejemplo si quieres buscar "Juego de Tronos" y utilizas en la búsqueda "juego de tronos" no tendrás bloqueo, en cambio si utilizas en la búsqueda "juego" pues posiblemente te bloquearán ya que arroja muchos resultados.
Radagast
Posts: 64
Joined: 2016-04-22 16:07:15

Re: [UPD ES] Filmaffinity 4.0

Post by Radagast »

Garada wrote: 2025-09-11 12:57:44Ahora hablando en general, creo que para el problema de demasiadas solicitudes se puede mirar algún proxy http gratuito que vaya bien y añadirlo al script
Entiendo que funcionaria si el proxy va variando la IP. Si siempre utiliza la misma bloquearían al proxy ¿no?
antp
Site Admin
Posts: 9753
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Re: [UPD ES] Filmaffinity 4.0

Post by antp »

jeraccoon wrote: 2025-09-05 22:50:07 Hola:
He copiado los 3 archivos en mi carpeta de script pero cuando le doy a buscar me aparece el error "HTTP/1.1 403 forbidden"
Uso windows 11
¿Alguien me puede echar un amano con este error?
Muchas gracias.
Sorry I had no time to come to the forum to validate your new post, so it only appears at a later time.
Did you overwrite the originial "filmaffinity.ifs" file?
I did not really follow developments of this new version so I don't know if something else has to be done on it to make it work
Radagast
Posts: 64
Joined: 2016-04-22 16:07:15

Re: [UPD ES] Filmaffinity 4.0

Post by Radagast »

jeraccoon wrote: 2025-09-05 22:50:07 Hola:
He copiado los 3 archivos en mi carpeta de script pero cuando le doy a buscar me aparece el error "HTTP/1.1 403 forbidden"
Uso windows 11
¿Alguien me puede echar un amano con este error?
Muchas gracias.
Hola, perdona, como indica Antp tú post se había perdido entre los muchos que hay.
Como te indica Antp el error que te da parece indicar que continuas utilizando el script antiguo, que no has sobrescrito el antiguo. O no los has copiado en el sitio correcto o has copiado el archivo ZIP como carpeta.
El enlace a los archivos que tienes que copiar es el siguiente https://mega.nz/file/YQsxBRyD#NODP1tG5p ... 12vUkqMg08
Tienes que copiar los archivos en la carpeta scripts que utiliza AMC, en una instalación típica la ruta es C:\ProgramData\Ant Movie Catalog\Scripts, tengo W10, supongo que en W11 será la misma. Ojo que esta ruta está oculta por defecto, no la verás a no ser que tengas activado mostrar archivos ocultos en el sistema, puedes copiar y pegar la ruta que he puesto en la ventana de windows.
Es muy importante que copies en la carpeta scripts de AMC los archivos que van dentro del ZIP que te descargas de MEGA, no el archivo ZIP en si mismo. Es decir abres el archivo ZIP (en W11 se te abrirá como si fuera una carpeta), selecciona los tres archivos, botón derecho y copiar.
Ahora abres la carpeta scripts que utiliza AMC y los pegas, te tiene que salir el aviso conforme el destino ya tiene un archivo filmaffinity.ifs, dale a "Reemplazar el archivo en el destino".

Haciendo esto te debería de funcionar.
jeraccoon
Posts: 2
Joined: 2025-09-05 22:47:07

Re: [UPD ES] Filmaffinity 4.0

Post by jeraccoon »

Radagast wrote: 2025-09-13 12:53:48
jeraccoon wrote: 2025-09-05 22:50:07 Hola:
He copiado los 3 archivos en mi carpeta de script pero cuando le doy a buscar me aparece el error "HTTP/1.1 403 forbidden"
Uso windows 11
¿Alguien me puede echar un amano con este error?
Muchas gracias.
Hola, perdona, como indica Antp tú post se había perdido entre los muchos que hay.
Como te indica Antp el error que te da parece indicar que continuas utilizando el script antiguo, que no has sobrescrito el antiguo. O no los has copiado en el sitio correcto o has copiado el archivo ZIP como carpeta.
El enlace a los archivos que tienes que copiar es el siguiente https://mega.nz/file/YQsxBRyD#NODP1tG5p ... 12vUkqMg08
Tienes que copiar los archivos en la carpeta scripts que utiliza AMC, en una instalación típica la ruta es C:\ProgramData\Ant Movie Catalog\Scripts, tengo W10, supongo que en W11 será la misma. Ojo que esta ruta está oculta por defecto, no la verás a no ser que tengas activado mostrar archivos ocultos en el sistema, puedes copiar y pegar la ruta que he puesto en la ventana de windows.
Es muy importante que copies en la carpeta scripts de AMC los archivos que van dentro del ZIP que te descargas de MEGA, no el archivo ZIP en si mismo. Es decir abres el archivo ZIP (en W11 se te abrirá como si fuera una carpeta), selecciona los tres archivos, botón derecho y copiar.
Ahora abres la carpeta scripts que utiliza AMC y los pegas, te tiene que salir el aviso conforme el destino ya tiene un archivo filmaffinity.ifs, dale a "Reemplazar el archivo en el destino".

Haciendo esto te debería de funcionar.
Hola:

Muchas gracias por responder.

HHice lo que me decís y ahora va perfecto.

Muchas gracias de neuvo.
Garada
Posts: 26
Joined: 2025-08-10 12:39:21

Re: [UPD ES] Filmaffinity 4.0

Post by Garada »

Radagast wrote: 2025-09-13 02:03:55
Garada wrote: 2025-09-11 12:57:44Ahora hablando en general, creo que para el problema de demasiadas solicitudes se puede mirar algún proxy http gratuito que vaya bien y añadirlo al script
Entiendo que funcionaria si el proxy va variando la IP. Si siempre utiliza la misma bloquearían al proxy ¿no?
En teoría sí. Por ahí tenía un BAT que descargaba una lista de proxys para pasárselo a otro programa.
Pero prefiero dejarlo por ahora pq es complicar el script con mas consultas a la web.

He hecho un cambio que no se si engañará a la web de Filmaffinity, le he añadido a la llamada a cURL una IP aleotoria en la cabecera. Lo pueden probar los que les bloquean por muchas peticiones.

Fichero ExternalCurlHandler.pas

Code: Select all

unit ExternalCurlHandler;

uses StringUtils7552;

const
  UseVBS = True; // Use Visual Basic Script to hide curl windows, disable if you do not want to or cannot use VBS (p.e. Linux)
  tmpDir = ''; // (optional) if you want get your scripts directory clean, set here your tmp working dir, example C:\Users\YOURWINDOWSUSER\AppData\Local\Temp\
  delayBetweenRequest = 2001;
  curlPath = 'curl.exe'; // if you use Windows 7 or 8 download curl.exe for Windows (it's free) and set here the right path
  vbsScript = 'ExternalCurlHandler.vbs';
  curlOutput = 'curlOutput.html';
  curlUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36';
  TimeOut = 10000; // Time to wait for response in ms

var
  InstallerPath: string;
  
function GetPage5Advanced(address: string; referer: string; cookies: string; content: string; headers: string): string;
var
  cnt: integer;
  fileContent: TStringList;
  curlOutputResult: string;
  sCommand: string;
  wh,wm,ws,wms: Word;
  IP: string;
begin
  Result := '';
  
  // Create VBS file if not exists
  if setupScript then
  begin
    // Delete temporal files
    if fileExists(InstallerPath + curlOutput) then
      DeleteFile(InstallerPath + curlOutput);  
    curlOutputResult := curlOutput + '.result';
    if fileExists(InstallerPath + curlOutputResult) then
      DeleteFile(InstallerPath + curlOutputResult);  
    
    // Random IP
    DecodeTime(Now, wh, wm, ws, wms);
    IP := IntToStr(wms mod 255) + '.' + IntToStr(ws) + '.' + IntToStr(wm) + '.' + IntToStr(wh);
    
    // CURL parameters:
    // Create info file with return codes and possible errors, it's created after page is downloaded
    sCommand := '-w "%output{' + InstallerPath + curlOutputResult + '}%{url}\nExitCode: %{exitcode}\nErrorMsg: %{errormsg}\nResponseCode: %{http_code}"';
    // Download page and save to file
    sCommand := sCommand + ' -L --output "' + InstallerPath + curlOutput + '" --url "' + address + '" ' + '-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 "X-Forwarded-For: ' + IP + '" -H "User-Agent: ' + curlUserAgent + '"';
    //test slow connection, don't uncomment
    //sCommand := '--limit-rate 1 ' + sCommand;

    Sleep(delayBetweenRequest);
    
    if UseVBS then
    begin
      // Launch CURL. Change " for #1 as VBS uses " for parameters. The VBS script undone the changes.
      Launch('wscript.exe', '"' +InstallerPath + vbsScript + '" "' + curlPath + '" ' + StringReplace(sCommand, '"', #1)); 
    end
    else
      Launch(curlPath, sCommand); 
    
    // Wait for end info file or timeout
    cnt := 0;
    while (not FileExists(InstallerPath + curlOutputResult)) and (cnt < TimeOut div 50) do
    begin
      cnt := cnt + 1; 
      Sleep(50);
    end;  
    
    // if info file exists
    if (fileExists(InstallerPath + curlOutputResult)) then
    begin
      fileContent := TStringList.Create;
      try
        // Read and delete info file 
        fileContent.LoadFromFile(InstallerPath + curlOutputResult); 
        DeleteFile(InstallerPath + curlOutputResult);
        
        // if return error
        if TextBetween(fileContent.Text, 'ErrorMsg: ', #13) <> '' then
          ShowError('Error downloading page.' + #13 + fileContent.Text)
        else if (fileExists(InstallerPath + curlOutput)) then // if downloaded page exits
        begin
          // Read and delete downloaded page
          fileContent.LoadFromFile(InstallerPath + curlOutput);
          DeleteFile(InstallerPath + curlOutput);
          // Return page
          Result := fileContent.Text;
          
          //if Pos('</html>', Result) < 1 then
          //  ShowError('TRIM!!!');
        end
        else // no error, no download, no timeout...
          ShowError('The page did not download');
      finally
        fileContent.Free;
      end;
    end
    else // if not: timeout
      ShowError('Internal Timeout!!');
  end
  else
  begin
    Sleep(delayBetweenRequest);
    Result := GetPage5(address, referer, cookies, content, headers);
  end;  
end;


function setupScript: boolean;
var 
  ScriptContent: TStringList;
begin
  Result := False;
  
  // initialize working path
  if (tmpDir <> '') then
    InstallerPath := tmpDir
  else  
    InstallerPath := dirScripts;
  InstallerPath := IncludeTrailingPathDelimiter(InstallerPath);
  
  // Create a generic VBS script that
  // open a command with parameters in hidden window
  if UseVBS then
  if (not FileExists(InstallerPath + vbsScript)) then
  begin
    ScriptContent := TStringList.Create;
    ScriptContent.Add('Dim Args()');
    ScriptContent.Add('ReDim Args(WScript.Arguments.Count - 1)');
    ScriptContent.Add('Args(0) = """" & WScript.Arguments(0) & """"');
    ScriptContent.Add('For i = 1 To WScript.Arguments.Count - 1');
    ScriptContent.Add('   Args(i) = Replace(WScript.Arguments(i), chr(1), chr(34))');
    ScriptContent.Add('Next');
    ScriptContent.Add('CreateObject("Wscript.Shell").Run Join(Args), 0, False');
    ScriptContent.SaveToFile(InstallerPath + vbsScript); 
    ScriptContent.Free;   
  end;

  Result := true;  
end;  

begin
end.
Radagast
Posts: 64
Joined: 2016-04-22 16:07:15

Re: [UPD ES] Filmaffinity 4.0

Post by Radagast »

Garada wrote: 2025-09-13 20:21:28 En teoría sí. Por ahí tenía un BAT que descargaba una lista de proxys para pasárselo a otro programa.
Pero prefiero dejarlo por ahora pq es complicar el script con mas consultas a la web.

He hecho un cambio que no se si engañará a la web de Filmaffinity, le he añadido a la llamada a cURL una IP aleotoria en la cabecera. Lo pueden probar los que les bloquean por muchas peticiones.
OK, lo voy probando y si me sale algún fallo lo comento.

Aunque a mi personalmente de la forma que añado/actualizo películas solo me ha pasado en dos ocasiones, al añadir películas con nombres muy genéricos y muchos resultados en la búsqueda. Suelo utilizar el nombre entero o casi entero de la película en la búsqueda esto limita la cantidad de peticiones del script. Supongo que a la gente que utiliza por ejemplo solo un palabra del titulo de la película le pasará más a menudo al hacer el script muchas peticiones en la búsqueda.
Además primero añado la película con Filmaffinity y luego actualizo con IMDB los campos Interpretes (me gusta más porque pone el personaje que interpreta el actor), productor (pone los nombres de los productores en lugar de las compañías) y la foto que acostumbra a ser de menor tamaño con calidad parecida. Esto hace que entre una película y otra que añado pase más tiempo.

Si estos bloqueos supusiesen un problema grave en general tengo algunas ideas que conjuntamente o por separado creo ayudarían a eliminarlos o mitigarlos, aunque no se si todas se podrían llevar a termino fácilmente.
1-limitar la búsqueda a las 5 primeras páginas, por ejemplo, aunque hubiera más para limitar las peticiones.

2-Esto que voy a decir a continuación no se si es posible. En la ventana de los resultados de la búsqueda entre los botones "Aceptar" y "Cancelar" hay otro que pone "Buscar más" (jamas me ha aparecido activado en ningún script), no se si seria posible que en el caso de que lo que buscamos no esté en ese primer grupo de 5 páginas nos cargue el siguiente grupo de 5 y así sucesivamente hasta llegar al último grupo.

2b-Si el punto 2 no fuera posible quizá poner un segundo delay más largo para retardar más las peticiones entre los grupos de búsqueda, delayBetweenGroupRequest. O multiplicar delayBetweenRequest por un valor X para las peticiones entre grupos, delayBetweenRequestMultiplier

3-sustituir la URL de búsqueda avanzada que solo ordena por fecha por la URL de búsqueda normal ordenada por relevancia (algo similar a la opción PopularSearches del script IMDB), por regla general lo que buscamos suele ser lo más relevante. Además la búsqueda normal es más tolerante al orden/ausencia de palabras, por ejemplo si buscas "juego tronos" en la avanzada no te da ningún resultado en cambio en la normal aparece en primer lugar. La búsqueda normal también se puede ordenar por fecha, se podría colocar una opción para decidir entre búsqueda avanzada, normal relevancia o normal fecha. Combinando esto con las otras yo creo que evitaría los bloqueos en general.

Como digo son ideas que no se si se pueden llevar a cabo, me faltan los conocimientos técnicos para ello.
Garada
Posts: 26
Joined: 2025-08-10 12:39:21

Re: [UPD ES] Filmaffinity 4.0

Post by Garada »

El punto 2 me parece lo más correcto, es lo más parecido a usar la web.

Le echo un vistazo 👍
Radagast
Posts: 64
Joined: 2016-04-22 16:07:15

Re: [UPD ES] Filmaffinity 4.0

Post by Radagast »

Garada wrote: 2025-09-14 10:20:51 El punto 2 me parece lo más correcto, es lo más parecido a usar la web.

Le echo un vistazo 👍
Sí, seria algo parecido a utilizar el botón Buscar más como el botón Siguiente en la página de búsqueda de la web.
Entiendo que se puede utilizar de esta manera, en la opción 1 de PopularSearches del script IMDB pone lo siguiente Show popular searches first, I'll click on 'Find more' if needed (much faster), aunque como comento a mi jamás me ha aparecido activado el botón para poder utilizarlo.
Rara es la vez que en la búsqueda con IMDB lo que busco no está en las primeras lineas.
Radagast
Posts: 64
Joined: 2016-04-22 16:07:15

Re: [UPD ES] Filmaffinity 4.0

Post by Radagast »

Garada wrote: 2025-09-13 20:21:28 He hecho un cambio que no se si engañará a la web de Filmaffinity, le he añadido a la llamada a cURL una IP aleotoria en la cabecera. Lo pueden probar los que les bloquean por muchas peticiones.
He hecho una prueba. He buscado Terror que en la búsqueda normal arroja más de 1000 resultados (la página de búsqueda avanzada ya avisa que lo limita a 500 resultados).
Tras buscar Terror 3 veces seguidas con AMC ha bloqueado la IP, así que parece ser que no engaña a la web.

PD: Ya sabeis que palabra buscar para saber si funcionan las modificaciones del script :hihi:
Garada
Posts: 26
Joined: 2025-08-10 12:39:21

Re: [UPD ES] Filmaffinity 4.0

Post by Garada »

Ok, dejo aquí una modificación del fichero FilmAffinity (ES).ifs que permite búsquedas paginadas.
Si hay algo que no funcione me dejan la cadena de búsqueda y el fallo y así lo voy ajustando.

https://mega.nz/file/wF9QRIwB#MRYSJYOWM ... Mg-rGf97Hc

Si esto funciona bien creo que se podría bajar al mínimo (o eliminar) los retardos en el script que llama a cURL.
Post Reply