안경잡이개발자

728x90
반응형

  유튜버에 대한 정보를 알려주는 사이트가 많이 존재한다. 그중에서 필자가 사용해 보았던 사이트를 소개한다. 일단 유튜버 정보를 잘 알려주는 사이트라면 해당 유튜버에 대한 구독자 증감 현황, 광고 단가, 평균 수입 등의 다양한 정보를 요약하여 잘 보여줄 수 있어야 한다. 먼저 녹스 인플루언서를 사용해 보았다.

 

  ▶ 녹스 인플루언서: kr.noxinfluencer.com/

 

NoxInfluencer,녹스 인플루언서,유튜브 수익,유튜브 구독자 순위,유튜브 마케팅,MCN,유튜브 광고,1인

녹스 인플루언서는 유튜브, 인스타그램 등 1인 크리에이터를 위한 전문적인 데이터 분석 및 통계 서비스, 유튜브 채널 수입, 인기 유튜버 순위, 실시간 구독자, 유튜버 비교, 랭킹 순위 등 다양한

kr.noxinfluencer.com

 

  녹스 인플루언서에서 내 채널을 확인해 보았다. 나도 모르는 정보가 많이 나온다.

 

 

  또한 [동영상 분석] 탭으로 가면 최근에 올린 동영상에 대한 분석 결과를 알려준다. 조회수 대비 좋아요가 많이 눌리고, 싫어요는 적게 눌릴수록 높은 점수를 부여하는 것 같다.

 

 

  다만 [광고영상 분석] 탭은 [회원 구매] 이후에 사용할 수 있다고 한다. 유료 기능인 것 같다.

 

  ▶ 블링: vling.net/

 

블링, 요즘 뜨는 크리에이터 찾아줘!

세상 모든 크리에이터를 검색부터 비교분석. 유튜브 트렌드까지 한 번에.

vling.net

 

  블링도 크리에이터 정보 검색 사이트다. 이 사이트는 크리에이터 본인인 경우 광고 단가 정보를 무료로 볼 수 있도록 해준다. 기본적인 정보들은 제공해준다. 필자의 경우 강의 영상을 위주로 올리기 때문에 조회수나 댓글 수는 적지만, 좋아요 비율은 좋은 편이다.

 

 

  ▶ 소셜 블레이드(Social Blade): socialblade.com/

 

YouTube, Twitch, Twitter, & Instagram Statistics - SocialBlade.com

SocialBlade can help you track YouTube Channel Statistics, Twitch User Stats, Instagram Stats, and much more! You can compare yourself to other users and analyze your growth!

socialblade.com

 

  유튜버 정보를 분석해주는 글로벌 사이트다. 세계 각지에 존재하는 모든 크리에이터를 비교해준다는 점에서 가지고 있는 데이터가 매우 많은 것으로 보인다.

 

728x90
반응형

728x90
반응형

  현재 유튜브 동영상에서 나오고 있는 음악이 어떤 음악인지 찾고 싶을 때 사용할 수 있는 크롬 확장 프로그램으로 'AHA Music'이 있습니다. 처음에는 어떤 동영상에 나오는 음악이 무엇이지 찾고 싶어서 설치해서 사용해 보았는데, 생각보다 잘 동작해서 자주 애용하고 있습니다.

 

  ▶ AHA Music 설치 경로

 

AHA Music - 브라우저 용 노래 찾기

노래는 무엇입니까? 노래 식별자가 알려줍니다!

chrome.google.com

 

  크롬 브라우저를 열어 경로에 들어간 뒤에 [Add to Chrome] 버튼을 눌러 설치하면 됩니다.

 

728x90
반응형

728x90
반응형

1. 동영상 호환성 문제인 경우

 

  동영상 자체가 프리미어와 호환이 되지 않아 오디오는 빼고 비디오만 불러와 지는 경우가 있다. 곰플레이어와 같은 재생 프로그램을 이용할 때는 정상적으로 소리가 들리지만, 프리미어에서는 소리가 불러와 지지 않는다.

 

  이럴 때는 원본 동영상의 인코딩을 다시 하여 프리미어에 불러온다. 필자는 이런 경우를 경험해 본 적이 있는데, 다음 팟 인코더와 같은 프로그램을 사용하여 인코딩을 다시 한 뒤에 프리미어에 불러왔을 때는 문제가 해결되었다.

 

2. 비디오 혹은 오디오 중에 하나만 소스 패치가 적용된 경우

 

  아래 사진을 확인해보자. 비디오 V1에 대해서만 소스 패치가 적용되어 있다. 이 경우 오디오가 존재하는 동영상을 불러와도 다음과 같이 비디오만 불러와 지며 오디오가 없는 것처럼 처리되는 것을 알 수 있다.

 

 

  이럴 때는 아래와 같이 오디오 소스 패치도 적용한다. 그러면 오디오도 정상적으로 불러와 지는 것을 알 수 있다.

 

728x90
반응형

728x90
반응형

  어도비 프리미어(Adobe Premiere)를 이용하여 동영상이나 사진을 특정한 도형 안에 넣는 방법을 소개합니다. 일단 프리미어를 실행한 뒤에 하나의 동영상을 타임라인에 올려주세요. 이후에 [타원 도구]를 선택합니다. 말 그대로 다양한 타원을 비디오에 넣고자 할 때 사용할 수 있는 도구입니다.

 

 

  저는 일단 다음과 같은 하나의 동영상을 준비해 보았습니다.

 

 

  이후에 한 번 원 도형을 그려보겠습니다. 그냥 드래그 앤 드롭해서 그리시면 되는데요. 참고로 원을 그리실 때는 쉬프트(shift) 키를 함께 누르시면서 드래그하면 타원형이 아닌 원 형태로 그려집니다.

 

 

  이제 [트랙 매트 키] 효과를 검색합니다. 이걸 비디오 클립에 적용합니다. (원 도형이 아닌, 비디오 클립에 적용해주세요.)

 

 

  결과적으로 비디오에 [트랙 매트 키] 효과가 적용되었습니다. 또한 저의 경우에는 원 도형(그래픽)이 V2 라인에 있는 것을 알 수 있습니다.

 

 

  이제 비디오를 누른 뒤에 [효과 컨트롤] 창에서 [트랙 매트 키]를 찾아 [매트] [비디오 2]로 선택해 주세요.

 

 

  그러면 다음과 같이 원 도형 안에 존재하는 부분만 화면에 출력되는 것을 알 수 있습니다.

 

728x90
반응형

728x90
반응형

  MIRFLICKR 데이터셋은 플리커(Flickr)에서 크롤링한 이미지를 모아 놓은 데이터셋입니다. 내부적으로 people, sky, street, dog 등의 다양한 태그(tag)를 가지고 있습니다. 공식 사이트에 따르면 이미지당 평균 태그의 수는 8.94개라고 합니다. 데이터셋을 다운로드하기 위해서는 아래의 사이트로 가면 됩니다.

 

  ▶ MIRFLICKR 데이터셋 다운로드: press.liacs.nl/mirflickr/mirdownload.html

 

  MIRFLICKR 데이터셋을 다운로드할 수 있습니다. 1M 버전과 25K 버전이 있는데, 일반적으로 가볍게 실험하기 위한 목적으로는 25K 데이터셋을 많이 사용합니다.

 

 

  다운로드를 완료한 뒤에 사진을 열어보면 대략 다음과 같은 형태의 사진들이 있습니다.

 

 

  25K 버전의 데이터셋은 내부적으로 25,000개의 이미지를 포함하고 있습니다. 압축 파일 크기는 2.85GB이며 해상도가 큰 이미지도 많이 포함하고 있기 때문에, 어느 정도 규모가 있는 네트워크를 학습시키기 위한 목적으로도 효과적으로 사용할 수 있습니다.

728x90
반응형

728x90
반응형

  필자의 경우 최근에 유튜브 채널에서 광고성 댓글 테러를 당했다. 수천 개의 광고성 댓글이 모든 영상에 걸쳐 달리게 된 것이다. 따라서 자동화 프로그램을 만들어 광고성 댓글을 스팸 댓글로 처리하고자 한다. 기본적으로 YouTube API는 국르 클라우드 플랫폼(Google Cloud Platform)을 이용하여 다룰 수 있다.

 

  광고성 댓글로는 다음과 같은 것들이 있다. 상당히 스트레스다.

 

 

구글 클라우드 플랫폼(Google Cloud Platform)에서 새 프로젝트 만들기

 

  구글 클라우드 플랫폼 링크: console.cloud.google.com/

 

  YouTube Data API를 사용하기 위해 가장 먼저 구글 클라우드 플랫폼에서 새 프로젝트를 생성해 보자.

 

 

▶ YouTube DATA API v3 사용 설정하기

 

  구글 클라우드 플랫폼은 매우 많은 수의 API를 제공한다. 따라서 프로젝트를 생성한 이후에는 YouTube Data API를 검색하여 이를 [사용] 설정할 필요가 있다.

 

 

▶ 사용자 인증 정보 만들기

 

  파이썬(Python) 등의 프로그램 환경에서 API를 호출해 사용하기 위해서는 사용자 인증을 수행해야 한다. 따라서 [사용자 인증 정보 만들기] 버튼을 눌러 인증 정보를 만들어 보자.

 

 

  다음과 같이 사용자 인증 정보를 추가할 수 있다. 필자의 경우 파이썬(Python) 프로그램으로 API를 호출할 것이다. 따라서 [기타 UI]를 선택한 뒤에 액세스할 데이터로는 [사용자 데이터]를 선택한다. 즉 파이썬 프로그램을 사용하는 사용자가 먼저 인증을 수행하고, 파이썬 프로그램은 액세스 토큰(access token)을 얻어 해당 사용자의 유튜브 채널 데이터를 처리할 수 있게 된다.

 

 

▶ OAuth 동의 화면 설정

 

  이어서 자신이 작성할 프로그램에서 특정한 사용자의 데이터에 접근하는 것이므로, 그 사용자(client)에게 권한을 요청하는 동의 화면을 만들어야 한다. 흔히 [구글 계정으로 로그인]과 같은 기능에서 동의 화면이 나오는 것을 떠올리면 된다.

 

 

   동의 화면 설정을 할 때는 사용자(user) 타입을 설정할 수 있는데, 필자의 경우 스스로 개인 유튜브 채널의 댓글을 관리하기 위해 사용할 것이다. 그래도 [외부]를 선택하는데, 필자의 경우 G Suite 사용자가 아니기 때문이다.

 

 

  이제 OAuth 동의 화면에 대한 설정을 진행하자.

 

 

  이제 권한을 요청할 범위를 선택한다. 필자는 유튜버의 댓글에 접근(access)할 필요가 있다. 따라서 [범위 추가 또는 삭제] 버튼을 눌러 범위를 설정할 수 있도록 한다.

 

 

  유튜브 채널 댓글 관리를 위해 YouTube Data API에서 YouTube 댓글 관련 범위를 선택한다. 구체적으로 youtube.force-ssl을 이용하면 된다.

 

 

  테스트 사용자의 경우 혼자 사용하고 테스트할 것이므로 나 자신을 추가한다. [ADD USERS]를 누른 뒤에 구글 이메일을 입력하고 저장하면 된다.

 

 

클라이언트 ID 생성 및 사용자 인증 정보 다운로드 

 

  이제 실질적으로 OAuth 2.0 클라이언트를 생성한다.

 

 

  이제 [다운로드] 버튼을 눌러 생성된 사용자 인증 정보를 다운로드한다.

 

 

  참고로 여기에서 OAuth 2.0 클라이언트(client)란 개발자가 작성한 소프트웨어를 말한다. 파이썬으로 동작하는 프로그램이 있을 때, 이 프로그램은 '자원 소유자(resource owner) = 유튜버'의 자원에 접근하기 위해 구글 서버(server)에 요청을 보내는 클라이언트라고 볼 수 있기 때문이다.

 

▶ Client Secret 다운로드

 

  결과적으로 Client Secret 파일을 다운로드하면 된다. 이는 개발자를 위한 .json 환경 설정 파일이다. 자신이 작성한 프로그램에서 OAuth 2.0 기능을 사용한다면, 이러한 .json 파일을 이용해 구글 API 서버에 접근할 수 있는 것이다. 당연히 다른 사람에게 유출되지 않도록 조심히 다루어야 한다.

 

 

▶ 소스코드 작성을 위해 참고할 문서

 

  1. YouTube Data API 댓글(comment) 문서 링크: developers.google.com/youtube/v3/docs/comments

 

  가장 좋은 것은 일단 공식 문서를 읽어보는 것이다. 상당히 내용이 잘 정리되어 있다. 특히 [Try this API] 창을 이용하여 API를 이용해 볼 수 있다. 예를 들어 댓글을 관리하기 위한 API 중 하나인 setModerationStatus()를 이용한다고 해보자. 이때 댓글 ID를 설정한 뒤에, 해당 댓글을 작성한 사람을 차단(ban)하는 등의 작업이 가능하다.

 

 

  참고로 [SHOW CODE] 버튼을 누르면 해당 API를 특정 프로그래밍 언어로 어떻게 이용할 수 있는지 자세한 코드 정보가 같이 나온다.

 

 

  2. YouTube 파이썬 API 공식 코드: github.com/youtube/api-samples/tree/master/python

 

  파이썬 사용자를 위한 YouTube Data API의 공식 코드를 확인할 수 있다. 예를 들어 API를 이용해 댓글을 관리하고자 할 때는 [Create and manage comments] 링크에 들어가 예제를 확인해 볼 수 있다.

 

 

▶ 소스코드 작성하기

 

  아래 깃허브에 필자가 작성한 코드 예시가 있다. 자신의 필요에 따라서 코드를 변경하여 사용하면 된다.

 

  github.com/ndb796/Management-Programs-for-YouTuber

728x90
반응형

728x90
반응형

  Google Cloud Platform의 경우 프로젝트 할당량이 정해져 있다. 일반적인 개발자의 경우 프로젝트(project)의 수 자체가 많지 않으므로 문제가 없지만, 프로젝트를 많이 운영하는 회사의 경우에는 GCP 프로젝트의 수를 많이 만들 필요가 있다. 예를 들어 다음과 같이 할당량이 부족하므로 할당량 증가를 요청하라는 메시지가 나오는 것을 알 수 있다.

 

  이때는 [MANAGE QUOTAS(할당량 관리)] 버튼을 눌러 할당량을 관리할 수 있다.

 

 

  결과적으로 다음과 같은 형태의 양식을 작성한 뒤에 제출하면 된다.

 

 

작성할 내용은 다음과 같다.

1. 이름: 본인의 이름을 넣는다.
2. 회사 혹은 웹사이트 이름: 옵션이므로 넣지 않아도 된다.
3. 이메일 주소: 요청(request)을 작성하고 있는 구글 계정을 넣는다.
4. 추가로 필요한 프로젝트의 수: 필요한 프로젝트의 수를 넣는다. 50개 이하라면 별다른 이유를 작성하지 않아도 된다.
5. 새로운 프로젝트에서 사용할 서비스의 종류
6. 필요한 이유: 필자의 경우 '교육용 비디오'를 만들기 위한 목적이라고 썼다.

 

예시) I need more project quotas to make educational videos for developers.

728x90
반응형

728x90
반응형

  단순히 비밀번호를 입력하여 접속하지 않고 SSH Key를 이용하여 서버에 접속하는 방법이 있다. 서버(server)에서 SSH Key를 만들고 세팅하는 방법은 간단하다. 단순히 ssh-keygen을 입력하면 된다. 이후에 엔터(enter)를 반복하면 자신의 홈 디렉터리(home directory)의 .ssh 경로에 개인키와 공개키 파일이 저장된다.

 

 

  다음과 같이 .ssh 디렉터리에 가보면 세 가지 파일이 존재한다.

 

  ▶ id_rsa: 개인키(private key)이며 접속하고자 하는 클라이언트(client)가 가지고 있는다.

  ▶ id_rsa.pub: 공개키(public key)이며 서버(server)가 가지고 있는다.

  ▶ authorized_keys: 서버가 접속을 허용할 공개키(public key) 리스트다.

 

 

  따라서 가장 먼저 서버는 id_rsa.pub에 적혀있는 공개키 데이터를 authorized_keys에 작성한다. 이후에 클라이언트(client)가 접속할 때는 id_rsa를 이용하여 서버에 접속하면 접속에 성공할 수 있다. 실제로 접속할 때의 명령어는 다음과 같다.

 

ssh -i {개인키 경로} {사용자명}@{서버 주소}
728x90
반응형

728x90
반응형

우분투(Ubuntu) 서버(Server) OS의 IP를 변경하기 위해서는 /etc/network/interfaces를 수정하면 된다. 대략 다음과 같은 형태로 사용한다. (참고로 우분투 테스크톱 버전에서는 네트워크 매니저 패키지가 가장 우선순위가 높기 때문에, 데스크톱 버전을 쓰고 있다면 그냥 네트워크 매니저를 건드리면 된다.)

 

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp3s0
iface enp3s0 inet static
        address {사용할 IP 주소}
        netmask {네트워크 마스크 주소}
        gateway {게이트웨이 주소}
        dns-nameservers {사용할 DNS 서버 주소 1} {사용할 DNS 서버 주소 2}

 

설정을 변경한 뒤에는 다음과 같이 네트워크 서비스(service)를 재시작하여 변경된 네트워크 설정을 반영한다.

 

systemctl restart networking.service

 

이후에 ifconfig 명령어를 이용하여 아이피(IP)가 변경되었는지 확인한다. 만약 변경되지 않았다면 재부팅을 진행한 뒤에 다시 확인해보자.

 

[ 참고 ]

 

고정 IP 설정을 위해서는 /etc/network/interfaces를 다음과 같은 형태로 수정한다.

 

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp3s0
iface enp3s0 inet dhcp

 

728x90
반응형

728x90
반응형

※ 리눅스(Linux) 커널 소스코드 다운로드 ※

 

우분투는 전형적인 데비안 리눅스 기반의 운영체제다. 가장 먼저 리눅스 커널 소스코드를 다운로드받는다. 버전별로 리눅스 커널 소스코드를 업로드해 놓은 사이트가 존재하는데, 아래 사이트에 접속하여 자신에게 필요한 버전의 소스코드를 받을 수 있다.

 

  ▶ 전체 커널 소스코드 목록: mirrors.edge.kernel.org/pub/linux/kernel/

 

필자의 경우 리눅스 5.8.7 커널 이미지를 다운로드받았다. 간단히 wget 명령어를 이용해 다운로드할 수 있다.

 

!wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.8.7.tar.gz

 

다운로드를 완료하면 .tar 확장자의 압축 파일이 생긴다. 다음의 명령을 이용하여 압축을 해제하자.

 

tar xvf linux-5.8.7.tar.gz

 

이후에 다음과 같이 리눅스(Linux) 소스코드 폴더로 이동하면 된다. 여기에 전체 커널 코드가 있다.

 

 

※ 환경설정(configuration) 파일 준비하기 ※


커널 디렉터리 내부에 들어온 뒤에는 가장 먼저 .config 파일을 생성해야 한다. 이는 커널 환경설정 파일이다. 이때 간단히 현재 자신의 커널 설정을 그대로 옮겨올 수 있다. 만약 컴파일을 진행하는 컴퓨터의 커널 설정을 그대로 적용하고자 한다면 마음과 같은 형태의 코드를 사용한다.

 

sudo cp /boot/config-{커널 버전} ./.config

 

필자는 아래와 같이 명령어를 입력하여 실행했다.

 

 

※ 커널 컴파일(Compile) 준비하기 ※

 

이어서 리눅스 커널을 컴파일하기 위해 필요한 패키지들을 설치한다. 아래 명령어는 필수 패키지 설치를 위해 일반적으로 많이 사용되는 명령어다. 가능하다면 필요하지 않은 패키지는 설치하지 않고, 패키지가 없다는 오류 메시지가 나오면 그때마다 패키지를 설치하는 방법으로 진행해도 된다.

sudo apt-get install build-essential libncurses5 libncurses5-dev bison flex libssl-dev libelf-dev bin86 kernel-package

 

※ 커널 컴파일(Compile) ※

 

컴파일 및 빌드는 생각보다 간단하다. 커널 소스코드를 수정한 뒤에 make를 입력하여 컴파일을 진행하면 된다. 이때 컴파일 속도를 빠르게 만드는 옵션을 사용할 수 있다. 이를 위해 가장 먼저 nproc 명령어를 이용하여 컴파일을 수행하는 컴퓨터의 프로세서(processor) 개수를 구하자.

 

 

필자의 경우 8코어 CPU를 사용하고 있기 때문에, -j8 옵션을 사용하겠다. 더불어 데비안 패키지(Debian Package) 형태로 빌드를 진행하겠다. 참고로 데비안 패키지는 .deb 확장자를 가지며, 비유하자면 윈도우에서의 .exe나 .msi와 같은 확장자를 가지는 프로그램 설치용 소프트웨어와 유사한 기능을 제공한다.

 

make -j8 bindeb-pkg

 

커널 컴파일을 진행해보자. 일반적인 PC에서 컴파일 명령어를 입력하면 1시간 이상의 시간이 소요될 수 있다. 대신에 한 번 컴파일했다면 그다음부터는 소스코드를 조금씩 수정해도 비교적 금방 컴파일이 완료될 것이다.

 

 

다음의 사진과 같이 매우 많은 소스코드를 컴파일하게 되는 것을 알 수 있다.

 

 

컴파일이 완료되고 .deb 패키지들이 생겼다.

 

 

대략 다음과 같은 형태의 데비안 패키지들을 얻었다면 성공이다.

 

linux-headers-5.8.7_5.8.7-4_amd64.deb
linux-image-5.8.7_5.8.7-4_amd64.deb
linux-libc-dev_5.8.7-4_amd64.deb

 

※ 패키지 옮기기 ※

 

필자의 경우에는 컴파일을 수행한 컴퓨터가 아닌 다른 컴퓨터의 커널을 업데이트할 것이다. 따라서 일단 데비안 패키지를 커널을 업데이트할 컴퓨터의 저장장치로 옮기면 된다.

 

그러므로 일단 커널을 업데이트할 저장장치를 연결한 뒤에 마운트를 진행한다.

 

mkdir -p mnt/fat32
mkdir -p mnt/ext4
sudo mount {블록 디바이스} mnt/fat32
sudo mount {블록 디바이스} mnt/ext4

 

 

이제 cp 명령어를 이용하여 .deb 파일을 옮긴다.

 

cp linux-headers-5.8.7_5.8.7-4_amd64.deb mnt/ext4/home/
cp linux-image-5.8.7_5.8.7-4_amd64.deb mnt/ext4/home/
cp linux-libc-dev_5.8.7-4_amd64.deb mnt/ext4/home/

 

패키지(package) 파일을 모두 옮겼다면 마운트를 해제하면 된다.

 

sync
sudo umount mnt/fat32
sudo umount mnt/ext4
rm -rf mnt/

 

 

※ 커널 업데이트 ※

 

모든 .deb 파일을 옮겼다면, 커널을 업데이트할 컴퓨터를 실행한 뒤에 dpkg 명령어를 이용하여 패키지를 설치한다.

 

sudo dpkg -i linux-headers-5.8.7_5.8.7-4_amd64.deb
sudo dpkg -i linux-image-5.8.7_5.8.7-4_amd64.deb
sudo dpkg -i linux-libc-dev_5.8.7-4_amd64.deb

 

설치가 완료되었다면 재부팅한다.

 

sudo reboot

 

 

※ 참고사항 ※

 

커널이 정상적으로 업데이트되었는지 확인하기 위해 커널 정보를 출력할 수 있다.

 

cat /proc/version

 

728x90
반응형