NewPipe ที่รันบน Linux ด้วย Android Translation Layer
(flathub.org)- พอร์ตไม่เป็นทางการของ NewPipe เป็นบิลด์ Flatpak แบบทดลองที่ใช้ Android Translation Layer ช่วยให้ติดตั้งและใช้งาน NewPipe สำหรับ Android บน Linux ได้
- บิลด์นี้ไม่ใช่ตัวเผยแพร่อย่างเป็นทางการที่สร้างโดย TeamNewPipe และไม่มีความเกี่ยวข้องหรือการรับรองจาก TeamNewPipe
- NewPipe เป็น YouTube frontend ที่เน้นความเป็นส่วนตัว โดยพาร์สเว็บไซต์แทนการใช้ไลบรารีเฟรมเวิร์กของ Google และ YouTube API
- ใช้งานได้แม้ไม่มี Google Services หรือ บัญชี YouTube และเผยแพร่เป็น FLOSS
- เวอร์ชัน 0.28.8 อ้อมผ่านปัญหาจากการที่ YouTube บังคับใช้โปรโตคอล SABR แต่ยังมีข้อจำกัดสำหรับวิดีโอสำหรับเด็ก
บิลด์ Flatpak ไม่เป็นทางการของ NewPipe
- NewPipe (unofficial port) เป็นบิลด์ Flatpak ไม่เป็นทางการและแบบทดลองที่ใช้ Android Translation Layer
- ไม่ใช่บิลด์ที่ TeamNewPipe ประกอบขึ้น และไม่ใช่แอปที่เกี่ยวข้องหรือได้รับการรับรองจาก TeamNewPipe
- ควรรายงานบั๊กไปที่ ATL bug tracker ไม่ใช่ bug tracker ของ NewPipe
- NewPipe ทำงานเป็น YouTube frontend ที่เน้นความเป็นส่วนตัว
- ไม่ใช้ไลบรารีเฟรมเวิร์กของ Google
- ไม่ใช้ YouTube API
- ข้อมูลที่จำเป็นได้มาจากการพาร์สเว็บไซต์
- ใช้งานได้บนอุปกรณ์ที่ไม่มี Google Services
- ใช้งานได้โดยไม่ต้องมีบัญชี YouTube
- เป็น FLOSS
บริการที่รองรับและการเปลี่ยนแปลงใน 0.28.8
- บริการที่รองรับรวมถึงตระกูล YouTube และแพลตฟอร์มสื่อหลายรายการ
- YouTube และ YouTube Music
- PeerTube และทุกอินสแตนซ์
- Bandcamp
- SoundCloud
- media.ccc.de
- รีลีส 0.28.8 อ้อมผ่านปัญหาการเล่นที่เกิดจากการที่ YouTube บังคับใช้โปรโตคอล SABR
- ปัญหาความละเอียดวิดีโอหายไป
- ปัญหาไม่สามารถใช้สตรีมเสียงแยกได้
- ปัญหาที่ใช้ได้เฉพาะสตรีม MP4 360p ที่มีเสียงรวมอยู่เท่านั้น
- เนื่องจากข้อจำกัดของวิธีอ้อมผ่านนี้ วิดีโอสำหรับเด็กจึงถูกยกเว้น
- การแก้ไขแบบอ้อมผ่านนี้เกิดจากความพยายามของชุมชน
- รีลีสนี้มี NewPipe Extractor v0.26.3 รวมอยู่ด้วย
- รวมการแก้ไขแบบอ้อมผ่านที่เกี่ยวข้องกับ SABR
- แก้ปัญหาที่ดึงวิดีโอจากเพลย์ลิสต์ YouTube ไม่ได้
- แก้ปัญหาที่การค้นหา Bandcamp ไม่ส่งคืนผลลัพธ์
- Get more Information
- Project Website
- Contribute Translations
- Report an Issue
- Browse the source code
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ส่วนที่น่าสนใจน่าจะเป็น https://gitlab.com/android_translation_layer/android_transla... เป็นส่วนใหญ่ อาจเป็น ทางเลือกแทน Waydroid แต่ในแง่ที่ไม่ต้องใช้โมดูลเคอร์เนล Binder ก็อาจใกล้เคียงกับ WINE มากกว่า
อีกอย่าง ผมคิดว่าไอเดียในการแพ็กเกจแอปพลิเคชันกับเลเยอร์ความเข้ากันได้ไว้ด้วยกันเป็น Flatpak นั้นค่อนข้างดี สามารถส่งมอบแอปได้แทบเหมือนเนทีฟ หา users และ testers ของเลเยอร์ความเข้ากันได้ได้ง่าย และยังจำกัดขอบเขตทีละแอป ทำให้สื่อสารได้ง่ายในทำนองว่า “แอปนี้ใช้งานได้ แต่อย่าเพิ่งคาดหวังแอปอื่นที่ยังไม่ได้ implement”
ว่ากันอย่างเคร่งครัด Flatpak น่าจะไม่ใช่สิ่งจำเป็น จะทำแพ็กเกจ Debian สำหรับ ATL และแพ็กเกจสำหรับ NewPipe แล้วใส่ไว้ใน repository หรือ PPA ก็ไม่น่ามีอะไรขัดขวางทางเทคนิค เพียงแต่สำหรับงานลักษณะนี้ Flatpak ดูเหมาะดี
service ก็ Binder, intent ก็ Binder รวมถึง internal intent, Play Services หรือ microG ที่แอป 90% ใช้ก็ Binder, permission ก็ Binder ถึงขั้นนี้แล้ว image Android แบบ x86 อาจจะดีกว่า เสถียรกว่า และความเร็วก็อาจพอ ๆ กัน
https://github.com/Cloudef/android2gnulinux
ดู https://gitlab.com/android_translation_layer/android_transla...
ถ้ามีอุปกรณ์ที่รัน postmarketOS หรือ Alpine Linux อยู่ ก็ลองกับแอป Android อื่น ๆ ได้เองเลย หลังจากรัน
sudo apk add android-translation-layerแล้ว$ android-translation-layer some-app.apkผมลอง F-Droid, Spotify, Megalodon ไปสองสามตัว แต่ล้มเหลวด้วยเหตุผลต่าง ๆ กัน และดูเหมือนว่า พื้นผิว API ยังว่างอยู่มาก ถึงอย่างนั้นงานพื้นฐานก็เสร็จแล้ว จึงหวังว่าส่วนจำนวนมากจะเพิ่มเข้าไปได้ค่อนข้างง่าย
จะใช้ NewPipe บนเดสก์ท็อปไปทำไม ในเมื่อมี https://freetubeapp.io/ อยู่แล้ว
เจ๋งมาก สงสัยว่าจะเปลี่ยนแอป NewPipe เป็น fork ชื่อ Tubular (https://github.com/polymorphicshade/Tubular) ที่มี SponsorBlock กับ ReturnYoutubeDislike ในตัวได้ไหม
https://gitlab.com/android_translation_layer/android_transla...
https://gitlab.com/android_translation_layer/android_transla...
สงสัยว่าแนวทางนี้จะทำงานได้ดีแค่ไหนเมื่อเทียบกับ วิธีของ Anbox/Waydroid
ใน ATL ถ้าเปิดด้วยเบราว์เซอร์ ก็จะเปิดเบราว์เซอร์เดสก์ท็อปจริง ๆ และไฟล์ดาวน์โหลดก็ไปอยู่ในโฟลเดอร์ที่เลือกไว้บนเดสก์ท็อป ให้ความรู้สึกใกล้กับ APK สำหรับเดสก์ท็อป เหมือน “ARC Welder” ของ Google ที่ไม่ได้ใช้เบราว์เซอร์เป็น runtime
ในที่สุดก็ลองติดตั้งแล้ว และประทับใจที่มันทำงานได้ดีเกินคาด แน่นอนว่า เต็มหน้าจอ จริง ๆ ดูเหมือนจะยังทำงานไม่ค่อยดี และมี glitch อย่างขอบว่าง ๆ อยู่บ้าง แต่โดยรวมแล้วมันก็ใช้งานได้เลย
มันมีประสิทธิภาพกว่าการเปิด Waydroid มาก เลยกำลังคิดว่าจะลองใช้กับแอปอื่น ๆ ที่ใช้อยู่ประจำด้วย FreeTube ก็เป็น client ที่ดี แต่เพราะ Electron ทำให้ขนาดใหญ่กว่าราวสามเท่า และ NewPipe รู้สึกลื่นไหลกว่ามาก
ในฐานะคนที่ชอบ NewPipe บนมือถือแล้ว น่าเสียดาย
ถือเป็นข่าวดี ผมลองเล่น Surface Go 2 อยู่เยอะมาก และ เลเยอร์แปลง Android ก็เหมาะพอดีกับสภาพแวดล้อมที่มีแค่หน้าจอสัมผัส, RAM น้อยมาก, eMMC ที่ช้ามาก และแบตเตอรี่ที่ถ้าโชคดีก็อยู่ได้ 8 ชั่วโมง
โดยเฉพาะอย่างยิ่ง แอป Linux ที่ใช้งานกับการสัมผัสได้ดีมีไม่มากนัก Kirigami ของ KDE หรือแอปที่เป็นมิตรกับการสัมผัสยังอยู่ระหว่างพัฒนาอย่างหนัก จึงแทบจะพอสำหรับการใช้งานประจำวันเท่านั้น ส่วนแอป Electron เข้ากับคีย์บอร์ดเสมือนไม่ค่อยได้เลยตัดออกไป แอป Flutter ใช้ประโยชน์ไม่ได้เพราะไม่รองรับ DPI ความละเอียดสูงบน Linux ส่วน GNOME รองรับการปรับสเกลแบบเศษส่วนได้ไม่ดี มีปัญหาบางเมนูบนหน้าจอสัมผัส และพื้นที่ฟอนต์ใน launcher ไม่สเกลตาม ทำให้บน DPI ความละเอียดสูงถูกตัดเป็นเหมือน “Firef...” อนึ่ง ผมใช้ Debian Bookworm อยู่
ดังนั้นจึงไม่ค่อยน่ายินดีที่ android_translation_layer ใช้ Gtk แต่เท่าที่ทราบ Gtk4 ปรับปรุงเรื่องการสเกลแล้ว อย่างไรก็ดี กำลังรอที่จะลองทดสอบอยู่
น่าสนใจ อยากเห็นบิลด์ AppImage ของแอปพลิเคชันที่สร้างด้วยไลบรารีนี้ด้วย
https://appimage.org/
ในกรณีของผม FreeTube จากรีโพซิทอรีของ Arch ทำงานได้ดีมาก
https://github.com/FreeTubeApp/FreeTube
ผมติดตั้งเป็นแอป F-Droid บน Android และใช้มาสักพักแล้ว ปัญหาคือมีแรงเสียดทานระหว่าง มาตรการตอบโต้ ของ YouTube กับเวอร์ชันใหม่ที่ออกมาเพื่อรับมือกับมัน
บ่อยครั้งจึงใช้ไคลเอนต์ทางเลือกบน Android ไม่ได้เป็นเวลาหลายเดือนจนกว่าจะมีการแก้ไข เรื่องนี้จะเป็นปัญหาบน Linux ด้วยไหม?
เมื่อไม่นานมานี้ผมได้รู้จัก Obtainium[1] ซึ่งสามารถติดตั้งและอัปเดตแอปจากแหล่งที่มาแทบทุกแบบที่ต้องการได้ เช่น ดาวน์โหลดโดยตรงจาก GitHub releases ได้เหมือน NewPipe
[1] https://obtainium.imranr.dev/