image - ¿Cuál es el esquema de URL de las imágenes de Tumblr?
(2)
Visión general
Cuando carga una imagen en Tumblr, se generan y almacenan múltiples tamaños (de la misma imagen) en su red.
Una vez cargada, puede usar etiquetas de plantilla para solicitar esta imagen en los siguientes tamaños: 75 , 100 , 250 , 400 , 500 y 1280 .
Vale la pena mencionar lo siguiente:
- El valor en la etiqueta de la plantilla es el tamaño máximo que tendrá la imagen solicitada. Ejemplo: una versión 400 de una imagen puede estar en cualquier lugar entre 251px y 400px de ancho / alto.
- Puede que no haya una versión de alta resolución o 1280 de una imagen disponible. Si la imagen original es de 500px o menos, no se genera una versión 1280 .
- Los sets de fotos no producen una versión 100 .
URL de la imagen
La URL de la imagen será una de las dos siguientes. La primera URL parece estar asociada con las imágenes subidas hace más de 6 meses (esto es una conjetura), la segunda URL parece ser para imágenes más nuevas:
http://36.media.tumblr.com/tumblr_o4qxa0n2BP1r6ec7zo1_500.jpg
o
http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_500.jpg
Esquema de URL
Esto se puede dividir en tres partes, dos variables, una constante.
-
http://36
-
.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1
-
_500.jpg
1 Este es un número de servidor y puede diferir para cada tamaño de imagen. AFAIK no hay garantía de que un tamaño de imagen esté disponible en todos los servidores. @Ally mencionó en los comentarios que puede eliminar esta parte de la URL y la imagen aún se encontrará.
2 Este es el subdominio Tumblr, el directorio (si corresponde) y el nombre de archivo parcial. Esto será igual para todos los tamaños.
3 Este es el tamaño solicitado (que coincide con la etiqueta de la plantilla) y la extensión del archivo.
Generando URLs para todos los tamaños disponibles usando etiquetas de plantilla.
El único método infalible que he encontrado es usar las etiquetas de plantilla correspondientes y asignarlas a un atributo de data-
.
Código de plantilla de ejemplo:
<img src="{PhotoURL-100}" data-250u="{PhotoURL-250}" data-400u="{PhotoURL-400}" data-500u="{PhotoURL-500}" data-1280u="{block:HighRes}{PhotoURL-HighRes}{/block:HighRes}" />
Ejemplo de código renderizado:
<img src="http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_100.jpg" data-250u="http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_250.jpg" data-400u="http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_400.jpg" data-500u="http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_500.jpg" data-1280u="http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_1280.jpg" >
Con este método, puede estar seguro de tener las URL correctas y saber qué tamaños están disponibles.
Hackear URLs de todos los tamaños basadas en una sola URL.
Usando esta información la URL se convertiría en:
http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_500.jpg
A continuación se muestra una prueba para confirmar que accedemos a todos los tamaños disponibles:
- http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_100.jpg
- http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_250.jpg
- http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_400.jpg
- http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_100.jpg
- http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_1280.jpg
Aún no sabrías si se ha generado el tamaño 1280, pero está un paso más cerca. Con este método, podría reemplazar el valor (parte 3) con un nuevo tamaño y debería poder obtener la imagen.
¿Cuál es el esquema de un archivo de imagen en Tumblr? (No me refiero a HTTP
) Solo he descubierto que el dominio de los servidores donde se almacenan las imágenes es <n>.media.tumblr.com
, donde n
es un número entre 1 y 31 y el nombre de la imagen el archivo tiene el prefijo " tumblr_
.
Lo pregunto porque quiero encontrar URL que hagan referencia a la misma imagen.
EDITAR: También estoy procesando URL de otras fuentes, no solo de Tumblr.
Tenga en cuenta que los archivos originales (en su resolución completa) se almacenan con el sufijo ''_raw'', en lugar de _1280, _500, _250, etc.
Normalmente se almacenan en data.tumblr.com actualmente (su dominio CDN).
La ruta en el esquema de URL se genera a partir de la suma de comprobación SHA1 del archivo original (sin procesar).