2026년 10월 31일 토요일

[갤럭시탭] 계정 없는 유튜브 기기 만들기 — 뉴파이프와 더블탭 제스처 (액자 시리즈 4편)


[갤럭시탭] 계정 없는 유튜브 기기 만들기 — 뉴파이프와 더블탭 제스처 (액자 시리즈 4편)

서두

시리즈로 태블릿을 액자로 만들었다. 그런데 10.1인치 1200×1920 화면을 액자로만 쓰기엔 아깝다. 유튜브도 시켜주자. 문제는 이 기기의 특수한 상황이다:

  • 구글 계정이 없다. 오딘 플래싱 편에서 봤듯, 이 구형 펌웨어의 설정 마법사는 계정을 넣는 순간 구글 어시스턴트 오류로 멈춘다. 애초에 액자 설계상 계정 없이 사는 게 방침이었다
  • 그래서 플레이스토어도 못 쓴다 (계정 필요)
  • 유튜브 뱅드(Vanced)는 2022년에 프로젝트가 끝났다 —  

왜 뉴파이프인가

앱계정플레이스토어현재 상태
공식 유튜브 앱필수필수이 기기에선 사실상 설치 자체가 안 됨
유튜브 뱅드선택불필요프로젝트 종료 (2022)
뉴파이프(NewPipe)불필요불필요오픈소스, 활발히 유지보수 중

뉴파이프는 유튜브를 계정 없이 보는 오픈소스 앱이다. 광고 없음, 배경 재생, 팝업 재생 지원. 구독도 구글 로그인 없이 기기에 로컬로 저장된다 — 계정 없는 기기와 완벽하게 맞는 조합이다. 안드로이드 8(2016년 기기)도 최신 버전(v0.29.1 기준 minSdk 23)까지 지원한다.

STEP 1. 설치 — 플레이스토어가 없으니까

설치 경로는 둘: F-Droid 스토어를 설치해서 거기서 받거나, GitHub 릴리스의 APK를 직접 받아 adb로 설치. 나는 후자를 택했다.

프롬프트 1

PC에서 뉴파이프 최신 버전을 설치하는 절차를 정리해줘:
1. GitHub의 TeamNewPipe/NewPipe 최신 릴리스에서 APK 받기
2. APK가 내 태블릿(안드로이드 8.0, minSdk 26 필요)과 호환되는지
   aapt dump badging으로 sdkVersion 확인
3. adb install로 설치
4. 설치 후 adb shell pm list packages | findstr newpipe로 확인

STEP 2. 진짜 문제 — 뉴파이프를 "어떻게" 여나

설치는 끝났는데, 발견한 문제가 하나 있다. 이 기기의 홈(런처)은 액자 앱이다. 앱 서랍도, 앱 목록도 없다. 뉴파이프를 실행할 방법이 존재하지 않는다.

선택지: 런처를 일반 런처로 바꾸면 액자가 아니게 되고, 매번 PC에서 am start로 열면 액자가 아니게 된다. 정답은 액자 앱 안에 문을 만드는 것 — 사진 화면을 두 번 탭하면 뉴파이프가 열리게 하자.

프롬프트 2

액자 앱의 사진 ImageView에 GestureDetector를 달아서:
1. 더블탭: org.schabi.newpipe 실행 — getLaunchIntentForPackage로
   설치돼 있을 때만 실행 (없으면 무시)
2. 기존 제스처와 충돌 없이: onDown은 true 반환,
   터치 리스너는 ImageView에만 바인딩
3. (기존에 있던) 한 번 탭 = 설정 화면과의 구분은
   GestureDetector가 알아서 해준다 — onSingleTapConfirmed를 쓰자

onSingleTapConfirmed 덕분에 "한 번 탭 = 설정"과 "두 번 탭 = 유튜브"가 충돌하지 않는다. 확정 대기 시간(약 0.3초)이 있긴 하지만 액자 앱에서는 아무 문제 없다.

STEP 3. 검증의 함정 — adb로 "더블탭"을 재현하기

코드가 끝나면 실기 검증인데, 여기서 재미있는 함정을 만났다. PC에서 이렇게 하면:

adb shell input tap 600 900   (탭 1)
(0.2초 대기)
adb shell input tap 600 900   (탭 2)

더블탭으로 인식되지 않는다. input tap 명령 하나당 안드로이드 VM이 새로 뜨느라 명령 간 실제 간격이 1초가 넘어버린다. 더블탭 인식 한계는 0.3초.

프롬프트 3

adb로 더블탭을 재현하는 테스트 명령을 만들어줘:
두 input tap을 백그라운드(&)로 동시에 발사해서
실제 탭 이벤트 간격을 0.3초 이하로 만들 것:
adb shell "(input tap 600 900 & sleep 0.05; input tap 600 900)"
성공 기준: dumpsys window의 mCurrentFocus가
org.schabi.newpipe로 바뀌는 것.

이렇게 프로그램적으로 더블탭이 열린 걸 확인하고, 이후 사용은 홈 버튼으로 마무리된다.

STEP 4. 액자와 유튜브의 공존

사용 흐름은 이렇다:

  1. 평소: 액자가 사진을 슬라이드쇼로 보여준다 (10초 간격)
  2. 유튜브 보고 싶으면: 화면 두 번 탭 → 뉴파이프
  3. 다 끝나면: 홈 버튼 → 즉시 액자로 복귀 (사진은 이어서 재생)
  4. 뉴파이프는 백그라운드에 살아 있어서, 다시 두 번 탭하면 보던 영상 그대로

뉴파이프가 홈 역할을 뺏지 않는 구조라서, 액자로서의 기본 임무가 절대 깨지지 않는다. 키오스크형 기기에 앱을 붙일 때의 기본기다: 홈만은 무조건 내 앱.

실전에서 배운 것들

  1. 계정 없는 유튜브는 충분히 실용적이다 — 검색·시청·구독(로컬)·배경재생까지 전부 된다. 못 하는 건 댓글 달기 정도.
  2. 앱 서랍이 없으면 문을 만들어라 — 제스처든, 설정 버튼이든, 홈 앱이 곧 출구다.
  3. adb 테스트도 시간이 개입된다 — input 명령의 VM 기동 지연(약 1초) 때문에 시간 민감한 제스처 테스트가 실패한다. 동시 발사로 회피.
  4. 구독은 로컬에 — 계정 연동이 없으면 기기가 바뀔 때 구독을 옮겨야 하는 단점이 있지만, 그 반대로 계정이 해킹당하거나 정책이 바뀌어도 내 목록은 내 기기에 그대로다.

마무리 — 시리즈 완결

  1. 오딘으로 순정 펌웨어 부활 (1편)
  2. 바이브코딩으로 액자 앱 개발 (2편)
  3. PC 동기화 도구로 사진 공급선 확보 (3편)
  4. 계정 없는 유튜브 기기로 격상 (4편, 이 글)

버려질 뻔한 웅진북클럽 태블릿은 이제 거실의 사진 액자이자, 아이들(과 아저씨)의 유튜브 기기다. 전부 케이블과 무료 소프트웨어로.