로컬에서 http request header 확인하는 서버 열기, ffmpeg 헤더 설정

FastAPI 설치 후 아래와 같이 입력하고 대충 uvicorn main:app --reload로 서버 돌리면 request header 보여주는 서버가 열린다.

from fastapi import FastAPI, Request

app = FastAPI()

@app.get("/")
def read_root(request: Request):
    print(request.headers)
    return {"Header": request.headers}

이걸 왜 만들었냐면 ffmpeg에서 헤더 설정을 아무리 해봐도 제대로 되는 것 같지가 않아서 확인하기 위해서 만들었다.

해보니 역시나.. ffmpeg -headers "User-Agent: 1" -headers "Host: 1" 처럼 설정하면 Host: 1만 적용되고 User-Agent가 적용이 안된다. 장난하나? 이거 이렇게 하라고 구글에 나와있어서 따라한건데..

ffmpeg -headers $'X-API-KEY: MyApiKey\r\nX-API-SECRET:asfd\r\n' -i http://localhost:8080/file -v trace

대충 위와 같이 \r\n으로 구분해서 여러 헤더를 설정할 수 있고, 다만 위는 윈도우에서는 CRLF inserting issue로 안된다. 뭐 어떻게 고치는 방법이 있겠지만 그건 잘 모르겠고 윈도우 사용자면 그냥 Git Bash나 WSL2 같은데서 실행하자.