brianloveswords / gif-from-tweet.md

Есть так много отличных GIF-файлов, и я хочу иметь их копии. Twitter делает это сложнее, чем должно быть, конвертируя их в MP4 и не предоставляя доступа к исходным материалам. Чтобы упростить задачу, я создал конвейер bash, который принимает URL-адрес твита и имя файла, извлекает MP4 из этого твита и использует ffmpeg для преобразования обратно в GIF.

путь> Зависимости

  • ffmpeg
    • macOS: brew install ffmpeg
    • Ubuntu/Debian: apt install ffmpeg

Установить

Вставьте это в свой ~/.profile :

 video-url-from-tweet () {if  ["$ 1"];  then url = $ 1 else echo "Должен предоставить URL" return 1 fi curl --silent $ url |  # должен найти тег  с content = "" (grep -m1 "tweet_video_thumb" ||   echo "Не удалось найти видео" && return 1) |  # from:  # to: https: //pbs.twimg.com/tweet_video_thumb/xxxxxxxxxx.jpg cut -d '"' -f 4 |  # from: https://pbs.twimg.com/tweet_video_thumb/xxxxxxxxxx.jpg # to: https://video  .twimg.com/tweet_video/xxxxxxxxxx.mp4 sed 's/.jpg/.mp4/g' |  sed 's/pbs.twimg.com /tweet_video_thumb/video.twimg.com /tweet_video/g'} video  -from-tweet () {if ["$ 1"]; then url = $ 1 else echo "Должен предоставить URL" return 1 fi curl $ (video-url-from-tweet $ url)} video-to-gif ()  {# получено из https://engineering.giphy.com/how-to-make-gifs-with-ffmpeg/if ["$ 2"]; then input = $ 1 output = $ 2 else echo "Должен предоставить входной файл и вывод  файл "return 1 fi ffmpeg -i $ input  -filter_complex" [0: v] split [a] [b]; [a] palettegen [  p]; [b] [p] paletteuse " -f gif  $ output} gif-from-tweet () {if [" $ 2 "];  then url = $ 1 output = $ 2 else echo «Необходимо предоставить URL-адрес и имя выходного файла» return 1 fi video-from-tweet $ url |  video-to-gif - $ output} 

Использование

  • video-url-from-tweet : принимает URL-адрес твита и возвращает MP4, встроенный в этот твит, или не работает, если видео не найдено.
  • video-from-tweet : возвращает необработанные данные видео, встроенного в твит.
  • video-to-gif : конвертирует видео в GIF.
  • gif-from-tweet : принимает URL-адрес твита и вывод имя файла и сохраняет MP4, встроенный в этот твит, как GIF.

Пример

  $ video-url-from-tweet https://twitter.com/tsunamino/status/1003318804619804672https://video.twimg.com/tweet_video/DeyBINOUwAAbuif.mp4# создает `wink.mp4 '$ video-from-tweet https: //twitter.com/tsunamino/status/1003318804619804672> wink.mp4 # создает `wink.gif 'из` wink.mp4' $ video-to-gif wink. mp4 wink.gif  # или используйте это, которое конвейерирует вышеуказанное и не создает промежуточный MP4 $ gif-from-tweet https://twitter.com/tsunamino/status /1003318804619804672 wink.gif 

Оцените статью
Botgadget.ru
Добавить комментарий