VEED API를 사용하여 비디오에 텍스트 트랙을 추가하는 방법

현대에 자막 영상은 이미 당신의 내용을 돋보이게 하는 주요한 방식이 되었다. 왜냐하면 관중들이 영상을 볼 때 대화를 따라하기 쉽기 때문이다.
동영상에 자막을 넣는 또 다른 뚜렷하지 않은 이유는 유튜브 등 동영상 플랫폼에서의 접근성과 개선된 SEO이기 때문이다.
이 문서에서는 VEED API를 통해 자동으로 비디오에 자막을 추가하는 데 필요한 단계를 소개합니다.
우리 시작합시다!

설치 및 설정


우선, 우리는 프로젝트를 설정하고, 필요한 모든 의존항을 설치하며, 4개의 간단한 절차를 통해 최종 결과를 얻을 준비를 할 것이다.

1. API 키 등록 및 가져오기


signup for your free Veed account으로 링크를 클릭하십시오.
등록이 완료되면 작업공간 대시보드를 볼 수 있습니다.Veed에서 동영상 편집 활동을 관리하는 집이야.
작업공간 대시보드에서 측면 메뉴에서 설정 탭을 클릭합니다.아래와 같이 섹션이 열립니다.페이지 아래쪽에 "API 사용"이라는 단추가 있습니다.대시보드의 API 섹션을 활성화하려면 버튼을 클릭합니다.

완성되면 아래 부분으로 안내됩니다.여기서 API와 모든 상호 작용을 수행하는 데 필요한 API 키를 복사할 수 있습니다.또한 후속 액세스를 위해 API 탭이 측면 메뉴에 추가되었습니다.

참고:
개발 과정에서 테스트 키 key_test_XXXXXXXXXXXXXX을 사용하고 배포 환경을 생산 키 key_live_XXXXXXXXXXXXXX으로 전환해야 합니다.

2. 노드 및 NPM 설치


시스템에 npm이 설치되어 있는지 확인합니다.
node -v && npm -v
콘솔에 인쇄된 버전 번호를 보실 수 있습니다.없으면 공식 Node.js site을 방문하여 플랫폼 설치 지침을 확인할 수 있습니다.
현재 node와 NPM이 설치되어 있으며 다음 명령을 실행하여 프로젝트 디렉터리를 설정합니다.

3. 프로젝트 디렉토리 설정


프로젝트 디렉토리를 만듭니다.
mkdir subtitle-video-app 
방금 만든 디렉터리를 입력하고 항목을 초기화합니다.
cd subtitle-video-app && npm init -y
이것은 프로젝트와 관련된 설정을 포함하는 package.json 파일을 만들 것입니다. 그러나 가장 중요한 것은 프로젝트의 의존항을 포함합니다.

4. 종속성 설치


이 프로젝트에 대해 설치해야 하는 유일한 종속 항목은 VEED API 노드 라이브러리입니다.이렇게 하려면 터미널에서 다음 명령을 실행하십시오.
npm i @veedstudio/veed-node --save
현재 우리는 필요한 의존항을 성공적으로 설치했고, 마지막 단계는 웹훅을 설정해야 한다.

5. 웹훅 설정


VEED API는 매번 API를 폴링하여 렌더링이 언제 완성되는지 알아보는 것이 아니라 웹훅에 대한 지원을 제공하여 사용자가 주의할 만한 작업이 발생할 때(예를 들어 렌더링이 시작되었거나 렌더링이 완료되었을 때) 수시로 이벤트를 수신할 수 있도록 한다
이 목적에 사용할 웹 훅 URL을 가져오려면 https://webhook.site/으로 가서 웹 훅 URL을 검색하십시오.유일한 URL을 복사한 다음 작업 영역 대시보드로 바로 이동합니다.API 탭에서는 이전에 복사한 URL을 붙여넣은 다음 저장을 클릭합니다.
이제 우리는 이 모든 것을 완성했고 동영상에 자막을 추가할 준비를 하고 있다.

비디오에 텍스트 트랙 추가


다음과 같이 비디오 자막을 두 단계로 나눕니다.
  • 비디오 업로드 및 전송
  • 자막 영상
  • 비디오 업로드 및 복사


    우선, 우리는 기록을 만들어야 한다.비디오 복사는 비디오 오디오를 텍스트로 변환하는 과정이다.
    VEED API를 사용하여 비디오를 복사하려면 managing media assets guide에서 이 작업을 수행하는 방법에 대한 자세한 내용을 볼 수 있는 리소스를 만들어야 합니다.자원을 만들 때 Webhook URL 옵션을 주체 매개 변수로 전달해야 합니다.

    자막 영상


    리소스(전록 포함)를 업로드하고 처리하면 자막을 위한 렌더링 대상 요청을 시작할 수 있습니다.
    먼저 비디오 요소로 업로드 자산을 추가해야 합니다.
    {
      "elements": [
        {
          "type": "video",
          "params": {
            "source": {
              "asset_id": "28a510a8-6690-4cdc-b319-e0e02ebf1a2e" 
            },
          }
        }    
      ]
    }
    
    다음 단계는subtitle 요소를 만들어서 정확한 transcribe: true을 인용했는지 확인하는 것입니다
    {
      "elements": [
        {
          "type": "video",
          "params": {
            "source": {
              "asset_id": "28a510a8-6690-4cdc-b319-e0e02ebf1a2e" 
            },
          }
        },
        {
          "type": "subtitles",
          "params": {
            "source": {
              "asset_id": "28a510a8-6690-4cdc-b319-e0e02ebf1a2e" 
            },
          }
        }
      ]
    }
    
    이제 요청을 보낼 수 있습니다.이러한 내용을 asset_id 파일로 저장하고 다음 명령을 실행합니다.
    -X POST \
      --header "Authorization: veed_test_oEnZhnd3vg0LEoTs6Z9Ij" \
      --data @render.json \
      https://api.veed.io/api/render
    
    자체 API 키를 사용해야 합니다.다음과 같은 응답을 받아야 합니다.
    {
      "id": "b477e483-592a-4bc6-a22b-563ef7f48e25",
    }
    

    결과를 얻다


    모든 렌더링 이벤트를 처리하려면 Webhook을 사용하는 것이 좋습니다. 그러나 이 예에서는 API를 폴링합니다(Getting the final render)에서 폴링 API에 대한 자세한 정보를 확인할 수 있습니다).
    curl \
      --header "Authorization: veed_test_oEnZhnd3vg0LEoTs6Z9Ij" \
      https://api.veed.io/api/render/b477e483-592a-4bc6-a22b-563ef7f48e25
    
    렌더링이 완료되면 render.json의 응답을 받을 수 있습니다.
    {
        "type": "RENDER/SUCCESS",
        "payload": {
          "id": "b477e483-592a-4bc6-a22b-563ef7f48e25",
          "progress": 100,
          "url": "https://cdn.veed.dev/R1vqZ0KfPp5y2z7ddiTyt.mp4"
        }
      }
    
    당신은 응답에서 RENDER_SUCCESS을 사용하여 렌더링을 다운로드하고 하드코딩 자막이 있는 새로운 영상을 감상할 수 있습니다!

    텍스트 트랙 비디오 가져오기


    자막이 달린 영상을 얻을 수 있는 몇 가지 방법이 있다.

    1. 웹훅 사용


    대시보드에 추가된 웹훅 URL을 복사한 https://webhook.site 페이지로 돌아갑니다.렌더링이 진행되면 여러 이벤트가 이 URL로 전송됩니다.

    왼쪽에서 받은 이벤트 목록을 찾을 수 있습니다.너는 그 중 하나를 눌러서 모든 유효 하중에서 보내는 데이터를 볼 수 있다.렌더링은 렌더링이 완료될 때까지 url percentage에서 시작됩니다.
    {
      "type": "RENDER/PROGRESS",
      "payload": {
        "render_id": "17cf9aad-807d-4f68-98b7-f748b8d67c22",
        "percentage": 0
      }
    }
    
    완료하면 요청한 텍스트 트랙 비디오의 URL을 포함하는 0 이벤트를 받게 됩니다.
    {
      "type": "RENDER/SUCCESS",
      "payload": {
        "render_id": "e52aad52-5ab0-465d-8341-fdabd6302cf1",
        "progress": 100,
        "url": "https://storage.googleapis.com/veed-prod-video-bucket/veedapi%2Frenders%2Fe52aad52-5ab0-465d-8341-fdabd6302cf1%2Foutput%2Fh5PIjzgDpai~x1srAbH1X.mp4?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=prod-api%40veed-prod-server.iam.gserviceaccount.com%2F20210228%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20210228T210416Z&X-Goog-Expires=9000&X-Goog-SignedHeaders=host&X-Goog-Signature=4ce2e4664470fb81f450e91fe63bdcd29e1077eed756a94eb3923b5740acbbc4618a91b148a5cd4b3540db615a95f0842893cc013aa965a8099d671724de058852816ec795bd17d483a51b944b8cc461a7b3bf0e3f51b5ed702dde0a5bbada3bb68fcc1de3d6fd1bcb8262f3199b28218d2de0dd9a4b2eaee5583b0ccbd52022e5a99a49f71972ed1c0ba28a9ae2d93f0e1b88f2b1308f8ff6375ad3ae31c80c42a9968d7ee572cfab03c0e153ac3ee67a4cdf9f8f8b4dca3fa42ae4240e01e259aa4808973607a71df681bee691e64d663436600b0b95852d26aa857dfc6d74e571207c93d201f31d0e1505dbc374d36076bf5caccd6a38281771af50017892"
      }
    }
    

    2.여론조사 API


    웹훅이 없으면 렌더링이 완료된 정확한 시간을 판단할 수 없습니다.따라서 다른 방법은 API를 폴링하는 것입니다.VEED 패키지를 사용할 수 있습니다.100RENDER/SUCCESS으로 교체하면 된다.스크립트를 다시 실행합니다.콘솔에 인쇄된 응답을 보실 수 있습니다.렌더링이 완료되고 URL을 다운로드할 준비가 되면 다음과 같은 응답을 받게 됩니다.
    {
      id: '540ba741-bead-42cd-bcbe-dcd2d0663d8d',
      workspace_id: '78c897c9-810d-4a33-97e2-15c796a05161',
      data: { elements: [ [Object], [Object] ] },
      latest_event: {
        type: 'RENDER/SUCCESS',
        payload: {
          render_id: '540ba741-bead-42cd-bcbe-dcd2d0663d8d',
          progress: 100,
          url: 'https://storage.googleapis.com/veed-prod-video-bucket/veedapi%2Frenders%2F540ba741-bead-42cd-bcbe-dcd2d0663d8d%2Foutput%2FzBG_du_k~qL5dLS9YT6Oa.mp4?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=prod-api%40veed-prod-server.iam.gserviceaccount.com%2F20210301%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20210301T084032Z&X-Goog-Expires=9001&X-Goog-SignedHeaders=host&X-Goog-Signature=7b9dd8d71a055867a1cc0947f24050ec145b863be3c787963f820ff218d9a55201c45b509cbdb48c8460a71c2f3c433c4809c55ffa610c5964d07e7fdcee3f19f3bb2cde93b104b7b66930fde8ccbc278c0a33afac5ad671d6265ab2e6e9ae0a96ddf6103ba7028f3508dfd1fb35aef37dc6a0cf28d245fcfc8d4ef825a3656aec6f0cee6f25c69422351e84d56226129b9168ce364d394bbffd8682b37efdd438b90b259aa964e41b714660343885020b3a4664db37c35019b82f397d270085881098a1ece6a7e2bc4c055d4db6b3ea3137fbd2c7576eb140b8ef1cb2d6479d36094450b2ee82335a84514b5ec14c28ef770eb0c4188e8fde6321ff68ee28a9'
        }
      },
      created_at: 1614588003775,
      modified_at: 1614588032628
    }
    
    이제 veed.render.create(renderOptions)을 복사하여 브라우저에 붙여넣을 수 있습니다.veed.render.get({id:'YOUR_RENDER_ID_GOES_HERE'})을 클릭하면 다운로드가 자동으로 시작됩니다.

    결론


    축하드립니다. VEED API를 사용하여 Node에서 동영상을 복사하고 자막을 추가하는 방법을 성공적으로 배웠습니다.설명서를 사용하여 API를 더욱 자세히 탐색하고 자신의 응용 프로그램이나 API를 구축하여 이 API를 더욱 교묘하게 활용하고 아래의 평론 부분에서 공유하도록 권장합니다.
    나는 네가 창조한 마법을 매우 보고 싶다.다음에 또 만나요!

    리소스

  • Our website
  • More about our API
  • Our API Documentation
  • 좋은 웹페이지 즐겨찾기