Фокси Форум
Очередной ламповый форум для вебмастеров о seo, заработке в интернете, создании сайтов, дорвеях, партнерках, крипте, ботах и антиботах.
Рег: May 07, 2020
Тема: Проксирование и сохранение превьюшек YouTube на сайте.
Можно стандартное проксирование и кэширование NGINX сделать с
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=img_cache:10m max_size=1g inactive=24h use_temp_path=off;Но это больше подходит для временного кэша, т.к. картинки в итоге хранятся хз где, в хз каком некрасивом формате и структуре:
А если хочется чтобы картинки стали частью сайта и на постоянно были закэшированы, то сохраню тут для истории такой конфиг Nginx:
# проверяем, есть ли файл локально
location ~ ^/youtube/([a-zA-Z0-9_-]+)\.jpg$ {
try_files /youtube/$1.jpg @proxy_to_youtube;
}
# если файл не найден, проксируем запрос
location @proxy_to_youtube {
resolver 8.8.8.8;
proxy_pass https://img.youtube.com/vi/$1/mqdefault.jpg;
proxy_read_timeout 3;
# Сохраняем файл локально
proxy_store on;
proxy_temp_path /tmp; # Временная папка для сохранения
# Настройки прокси
proxy_set_header Host img.youtube.com;
proxy_set_header X-Real-IP $remote_addr;
# Заголовки
add_header Cache-Control "public";
}
Если в первоисточнике видео нету, то и локально ничего не сохранит. Раньше в дорвеях использовал этот метод. Теперь просто чтоб локально закэшировать превью, и выводить превью ссылкой на видео. Так при замедлении ютуба РКНом в России страница с фреймом не будет тормозить загрузку всей страницы. Как пример в этой теме: