2 คะแนน โดย GN⁺ 2024-08-25 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เรื่องราวที่ Reddit แบนฉันเพราะการพัฒนาแอป

  • จุดเริ่มต้น

    • ในเดือนมิถุนายน 2023 Reddit ได้ประกาศนโยบายราคา API ใหม่
    • ก่อนหน้านี้ใช้งานฟรี แต่ตอนนี้คิดราคา $12,000 ต่อคำขอ API 50 ล้านครั้ง
    • เรื่องนี้ส่งผลกระทบอย่างหนักต่อแอปและบอตที่ไม่ใช่เชิงพาณิชย์
  • Geddit

    • ระหว่างที่สำรวจ API ของ Reddit ผู้เขียนพบว่าเมื่อเติม .json ต่อท้าย URL ก็จะได้รับทั้งหน้าในรูปแบบ JSON
    • จึงสร้าง API wrapper ของ Reddit ด้วยไลบรารี JavaScript แบบเรียบง่าย และตั้งชื่อมันว่า Geddit
    • มอบความสามารถในการใช้งาน Reddit แบบอ่านอย่างเดียวโดยไม่ระบุตัวตน
  • การพัฒนาแอป

    • พบกับเฟรมเวิร์ก Capacitor และ Ionic ที่ช่วยพัฒนาแอปมือถือเนทีฟได้ด้วย HTML, CSS และ JavaScript
    • พัฒนา Geddit เป็นแอป Android และแชร์บน GitHub
    • ถูกพูดถึงบน Hacker News, Android Police, Reddit, YouTube เป็นต้น
    • มียอดดาวน์โหลดมากกว่า 25k ครั้งบนหน้า GitHub Releases
  • ตอนจบ

    • ออกรุ่นหลายเวอร์ชันและเพิ่มการตกแต่งตามแนวทาง Material Design
    • เผยแพร่แอปบนสโตร์ F-Droid
    • ได้รับอีเมลจาก Reddit และได้อธิบายว่าโครงการนี้ไม่ใช่ผลิตภัณฑ์เชิงพาณิชย์และไม่ได้ใช้งาน API ในทางที่ผิด
    • หยุดการพัฒนาไว้ขณะรอการตอบกลับจาก Reddit
  • สรุปโดย GN⁺

    • บทความนี้แสดงให้เห็นผลกระทบของนโยบายราคา API ใหม่ของ Reddit ที่มีต่อนักพัฒนาแอปที่ไม่ใช่เชิงพาณิชย์
    • Geddit เป็นโครงการโอเพนซอร์สที่ทำให้ใช้งาน Reddit แบบไม่ระบุตัวตนได้โดยอ้อมผ่าน API ของ Reddit
    • แม้โครงการจะหยุดลงจากการตอบสนองของ Reddit แต่ยังคงใช้งานได้อยู่
    • โครงการอื่นที่มีฟังก์ชันคล้ายกัน ได้แก่ Apollo และ Juno

1 ความคิดเห็น

 
GN⁺ 2024-08-25
ความคิดเห็นจาก Hacker News
  • ตอนเด็ก ๆ Reddit เคยเป็นเว็บไซต์โปรดที่สุดของผม ผมมักจะค้นพบซับเรดดิตใหม่ ๆ ที่น่าสนใจ แล้วอ่านโพสต์กับคอมเมนต์ไปเรื่อย ๆ
    เมื่อก่อนหน้าแรกก็ยังพอดูได้พอสมควร แต่ตอนนี้รู้สึกเหมือนเป็นงานเลี้ยงบอตและเครื่องจักรโฆษณาชวนเชื่อ
    ผมยังใช้อยู่ แต่ใช้น้อยลงมาก และใช้แค่อ่านซับเรดดิตสายเทคนิคเฉพาะทาง ไม่ใช่เพื่อความสนุกแล้ว
    ผมปฏิเสธแอปมือถือทางการ และใช้ Baconreader กับ Relay บน Android มาโดยตลอด โดย Relay อยู่รอดมาได้ด้วยโมเดลสมัครสมาชิกหลังการเปลี่ยนแปลง API
    แต่ด้วย Revanced ตอนนี้จึงแพตช์ Relay เวอร์ชันเก่าให้ใช้ฟรีด้วย API key ของตัวเองได้

    • สรุปได้ว่าแทบทุก แพลตฟอร์มโซเชียลมีเดีย ยอดนิยมในช่วงนี้กลายเป็นงานเลี้ยงบอตและเครื่องจักรโฆษณาชวนเชื่อไปแล้ว
      HN ยังพอใช้เรียนรู้ว่าเกิดอะไรขึ้นในโลกเทคโนโลยีได้ เพราะเรียบง่ายและช่วยกรองคอนเทนต์คุณภาพต่ำจำนวนมากออกไป แต่คอมเมนต์ที่ตอบสนองแค่กับพาดหัวก็เพิ่มขึ้นเรื่อย ๆ
      Reddit เหมือน Meta ตรงที่ถ้าไม่มีบัญชี ประสบการณ์ผู้ใช้ก็เลวร้ายจนใช้งานยาก ส่วน X อย่างน้อยก็ไม่แกล้งทำเป็นอย่างอื่น แทนที่จะปล่อยให้ใช้ไม่ได้เลย
      ผมคิดว่าเราต้องการเว็บไซต์เรียบง่ายมากขึ้นอีกครั้ง แต่ก็ไม่แน่ใจว่าแรงจูงใจในการสร้างโครงสร้างแบบนั้นคืออะไร
    • ไม่ใช่แค่ปัญหาของแอปเท่านั้น แต่ ตัวคอนเทนต์เองก็ถดถอย
      เมื่อก่อนซับเรดดิตจำนวนมากมีเนื้อหาตรงกับชื่อของมัน แต่ตอนนี้ 90% เป็นคอนเทนต์การเมืองสหรัฐฯ แม้แต่ r/pics ก็ไม่ใช่ข้อยกเว้น
      ไม่ใช่แค่โพสต์ แต่ในคอมเมนต์ก็มีจุดยืนทางการเมืองแทรกเข้ามาตลอด แม้ในโพสต์ที่ไม่เกี่ยวกับการเมือง จึงอ่านแล้วเหนื่อย
    • แอปและเว็บไซต์ของ Reddit แย่ลงเรื่อย ๆ
      ดูเหมือนเป็นตัวอย่างชั้นดีของกรณีที่ฝ่ายบริหารและผู้บริหารระดับสูงพยายามแสดงอิทธิพลของตัวเองและหาเหตุผลรองรับเงินเดือน จนทำแพลตฟอร์มพัง
      บอตและโฆษณาชวนเชื่อ มีอยู่ทุกที่จริง ๆ แพลตฟอร์มก็แย่ลงเรื่อย ๆ แต่ก็ต้องยอมรับว่ามันยังมีความเสพติดอยู่ระดับหนึ่ง
      ค่อนข้างน่ายินดีที่ HN เป็นพื้นที่ที่โดยรวมหลีกเลี่ยงการเมือง
      ผมเบื่อที่ผู้คนจำนวนมากไม่รู้แม้แต่นโยบายของผู้สมัครนายกเทศมนตรีในพื้นที่ตัวเอง หรือแม้แต่นายกเทศมนตรีคือใครและสภาเมืองทำอะไร แต่กลับคุยเรื่องภูมิรัฐศาสตร์กับการเมืองในประเทศเหมือนเป็นสงครามแฟนด้อม
      ผมมองว่าสิ่งนี้มาจากการตายของหนังสือพิมพ์ดั้งเดิมที่มีฐานในท้องถิ่น และถูกแทนที่ด้วยสื่ออินเทอร์เน็ตที่โดยแก่นแล้วเป็นสื่อระดับโลก
      ดูเหมือนชาวอิตาลีส่วนใหญ่จะรู้เรื่องการเมืองสหรัฐฯ ดีกว่าสิ่งที่เกิดขึ้นในละแวกบ้านตัวเอง ซึ่งกลับหัวกลับหางไปหมด
    • ถ้าบริษัทปล่อยปละละเลยผู้ใช้และคอนเทนต์ที่เคยมอบคุณค่าเฉพาะตัวให้แพลตฟอร์มเป็นเวลานาน และบางครั้งยังเผชิญหน้ากับพวกเขาอย่างแข็งกร้าว ผลลัพธ์ก็เป็นแบบนี้
      แน่นอนว่าฟางเส้นสุดท้ายคือ เหตุการณ์ API แต่ก่อนหน้านั้นก็เห็นคนที่รักคอมมูนิตี้ต่าง ๆ ของ Reddit อย่างจริงใจเริ่มทนกับลูกเล่นหรือความไม่ใส่ใจของบริษัทไม่ไหว จนยอมแพ้และจากไป
      ระหว่างนั้น Reddit ก็ยังเติบโตต่อไป ดังนั้นจากมุมมองการบริหารแบบสเปรดชีตก็คงดูเหมือนไม่มีปัญหาอะไร
      แต่การเติบโตส่วนใหญ่นั้นคือคอนเทนต์ใช้แรงน้อยแบบที่เห็นได้ในทุกแพลตฟอร์มโซเชียล ส่วนคอนเทนต์เฉพาะตัวที่ทำให้ Reddit พิเศษนั้นค่อย ๆ ลดลงทั้งปริมาณและคุณภาพมาหลายปี
    • ถ้าอยากรับสรุปซับเรดดิตสายเทคนิคเฉพาะทางรายวัน/รายสัปดาห์ ใช้ https://redditletter.com ได้
      เป็นบริการที่ผมทำขึ้นเพราะต้องใช้เอง
  • ดูเหมือนถึงเวลาแนะนำโปรเจกต์ fediverser [0] ที่ช่วยให้ย้ายออกจาก Reddit แล้ว
    มันให้สมัครใช้อินสแตนซ์ Lemmy [1] ด้วยบัญชี Reddit และสมัครติดตามคอมมูนิตี้ทางเลือกบน Lemmy ที่สอดคล้องกันโดยอัตโนมัติ
    รายการทางเลือกมาจากการคราวด์ซอร์ส และการติดตั้งใช้งานหลักอยู่ที่ https://fediverser.network
    ถ้าอยากฟอร์ก ก็รันอินสแตนซ์ของตัวเองแล้วจัดการตามแบบที่ต้องการได้เลย
    เมื่อไม่กี่เดือนก่อน ผมได้รับทุนสนับสนุนเล็ก ๆ จาก NLNet และกำลังทำงานเพื่อนำฟีเจอร์นี้ไปฝังในไคลเอนต์ Voyager หรือ PWA โคลนของ Apollo
    หากมีบุคคลหรือบริษัทใดอยากช่วยเพิ่มเติมหรือสนับสนุน ก็ติดต่อมาได้
    [0] https://fediverser.io
    [1] https://portal.alien.top

    • บน Reddit ผมเป็นผู้ใช้เงียบ ๆ ที่อ่านบ่อยแต่ไม่ค่อยโพสต์
      Mastodon หรือแอปพลิเคชัน ActivityPub อื่น ๆ สามารถโต้ตอบกับ Lemmy ได้ในระดับหนึ่ง และในทางกลับกันก็ทำได้เช่นกัน จึงหวังว่าโซเชียลเน็ตเวิร์กทั้งสองแบบจะช่วยกันเติบโต
      ผมสงสัยว่าจะเพิ่มการตั้งค่า บัญชี Fediverse ของตัวเอง เพื่อให้เมื่อคลิกคอมมูนิตี้แล้วถูกรีไดเร็กต์ไปยังเซิร์ฟเวอร์ของตัวเองได้ไหม
      เช่น เมื่อค้นหา /r/switzerland ก็มีปุ่มสำหรับเปิดในเซิร์ฟเวอร์ Fediverse ของผมเองอยู่ข้าง ๆ switzerland@feddit.ch ที่ Fediverser แนะนำ คล้ายกับปุ่ม ‘Take me home’ ของเว็บไคลเอนต์ Mastodon
    • ถ้า ระบบนิเวศ Lemmy สามารถสร้างประสบการณ์แบบยุครุ่งเรืองของ Reddit ขึ้นมาได้ก็คงดีมาก
      ตอนนี้กิจกรรมยังไม่มากพอ แต่ผมตั้งใจจะเข้าร่วมเองเพื่อเป็นส่วนหนึ่งของทางแก้
    • ปัญหาของ Lemmy คือ “คอมมูนิตี้” ที่เทียบเท่าซับเรดดิตถูกผูกกับอินสแตนซ์เฉพาะ
      สุดท้ายแล้วในแต่ละอินสแตนซ์ก็จะมี c/linux, c/funny, c/technology, c/anime ฯลฯ แยกกัน ทำให้ใช้งานยากมาก
    • สงสัยว่าสิ่งนี้จะช่วยแก้ ปัญหาโมเดอเรเตอร์ ที่เมาอำนาจได้ด้วยไหม
  • Geddit ยังใช้งานได้และเป็นแอปที่ยอดเยี่ยม แถมอ่านโพสต์ที่ถูกทำเครื่องหมายว่า NSFW ได้แม้ไม่มีบัญชี
    แอปอื่นที่ผมรู้ว่ายังใช้ได้คือ RedReader ซึ่งดูเหมือน Reddit จะปล่อยไว้ไม่ทำให้พัง เพราะมีฟีเจอร์การเข้าถึงขั้นสูงสำหรับผู้อ่านที่มีความพิการ
    แต่รายการ NSFW จะเข้าไม่ได้ และมีข้อความให้ไปใช้เว็บไซต์
    IP ที่ใช้ร่วมกันถูก Reddit บล็อกในระดับเครือข่าย และการเรียกดูแบบไม่ระบุตัวตนก็ถูกปิดใช้งาน
    รู้สึกเหมือนเจอ CAPTCHA วันละประมาณ 50 อัน และผมคิดถึงเว็บแบบเก่ากับ ข้อความล้วน จริง ๆ

    • สิ่งแปลกของการปราบปราม Reddit API คือพวกเขาไม่เคยบล็อก การเข้าถึง API แบบไม่ยืนยันตัวตนจริง ๆ
      rif is fun ก็ยังใช้งานได้ หรืออย่างน้อยตอนที่ผมเปิดครั้งล่าสุดเมื่อหนึ่งหรือสองเดือนก่อน มันยังใช้แบบอ่านอย่างเดียวได้
      JSON endpoint ที่ Geddit ใช้คือ Reddit API และเปิดกว้างอยู่ ดังนั้นจึงเรียกว่า “หลบเลี่ยงข้อจำกัด API” ไม่ได้
    • ถ้าบัญชีที่ล็อกอินอยู่เป็น โมเดอเรเตอร์ แม้แต่ซับเรดดิตที่มีคนเดียว ก็สามารถเข้าถึง NSFW ใน RedReader ได้
    • แค่ใช้ old.reddit.com ก็ได้ไม่ใช่เหรอ? สำหรับผมมันใช้ได้ดี
  • Reddit ที่ผมค้นพบครั้งแรกตอนผู้ใช้ไหลออกจาก Digg เคยเป็นที่ที่ยอดเยี่ยม
    น่าเสียดายที่มันเปราะบางเกินกว่าจะรักษาสภาพดี ๆ นั้นไว้ได้ และดราม่าที่เกิดซ้ำจาก ความผิดพลาดในการบริหาร ของผู้ดูแลก็ค่อย ๆ กัดกร่อนเจตนาดีลงไป
    บริษัทตอบสนองต่อเรื่องนี้ด้วยการทำตัวเป็นปฏิปักษ์กับผู้ใช้มากขึ้น และไม่มีทีท่าว่าจะหยุดท่าทีที่พยายามบีบเค้นผู้ใช้ต่อไป ไม่ว่าจะเป็นเวลาว่าง เงิน หรืออะไรก็ตาม
    เราต้องการวิธีสาธารณะในการพูดคุยเรื่อง หัวข้อเฉพาะทาง กันโดยไม่มีตัวกลางที่เป็นพิษ

  • น่าแปลกใจที่ยังมีคนพัฒนาโดยใช้ Reddit เป็นแพลตฟอร์มอยู่
    การพึ่งพาแพลตฟอร์มก็เสี่ยงอยู่แล้ว แต่ดันเป็น Reddit อีก
    ข้อดีอย่างเดียวของ Reddit คือ network effect ที่ผูกอยู่กับคอนเทนต์ดี ๆ จากผู้ใช้เท่านั้น ส่วนที่เหลือรวมถึงวิธีที่ปฏิบัติต่อนักพัฒนานั้นแทบไม่ต่างจากกองขยะ

    • ฟังดูเหมือนนี่ไม่ใช่ธุรกิจ แต่เป็นโปรเจกต์ส่วนตัวที่ทำเล่น ๆ และเจ้าตัวก็รู้อยู่ตั้งแต่แรกว่าสักวันมันจะต้องปิดตัวลง
    • ตอนนี้ Reddit แทบสร้างคอนเทนต์ดี ๆ จากผู้ใช้ไม่ได้แล้ว
      มันฆ่า ห่านที่ออกไข่ทองคำ ไปแล้ว และธุรกิจขายไข่ก็กำลังพังลงอย่างหลีกเลี่ยงไม่ได้
  • มีตอนหนึ่งที่บอกว่าการได้รู้ว่าเติม .json ท้าย URL แล้วจะได้ทั้งหน้าในรูปแบบ JSON เป็นการเปิดโลกครั้งใหญ่ ซึ่งจริง ๆ แล้วตอนนี้ก็ยังใช้งานได้อยู่
    ถ้าเอาโพสต์ยอดนิยมตอนนี้อย่าง https://www.reddit.com/r/funny/comments/1ezq3po/asked_for_my... ไปเปลี่ยนเป็น https://www.reddit.com/r/funny/comments/1ezq3po/asked_for_my... ก็จะดึงคอมเมนต์ทั้งหมดเป็น JSON ได้โดยไม่ต้องยืนยันตัวตน
    น่าสนใจว่าการใช้วิธีนี้สร้างไคลเอนต์ที่มี UI ดี ๆ และเลี่ยงโฆษณาทั้งหมดน่าจะง่ายมาก

    • เท่าที่รู้ วิธีนั้นไม่ได้ดึง คอมเมนต์ทั้งหมด ได้จริง ๆ
      ถ้าลองไล่แสดงคอมเมนต์ทั้งหมดของโพสต์จากข้อมูลที่คืนกลับมา จะจบลงที่จำนวนซึ่งน้อยกว่าตัวเลขที่เว็บ UI ของ Reddit แสดงอยู่มาก
    • ยังรองรับ JSONP [1] อยู่ด้วย
      แอป React เล็ก ๆ [2] ที่ไม่ได้แตะมา 9 ปีใช้วิธีนี้ และยังทำงานได้ดีจนถึงตอนนี้
      [1] https://www.reddit.com/r/programming/comments/cxh3a/we_just_...
      [2] http://insin.github.io/just-dadjokes/
  • ผมเลิกใช้ตอน Reddit ทำเรื่องแบบนี้ และชีวิตก็ดีขึ้นมาก
    Reddit ยุคแรกมีชุมชนและคอนเทนต์ดี ๆ แต่เมื่อได้รับความนิยมมากขึ้นและเริ่มบีบรายได้ มูลค่าของมันก็ลดลง
    น่าขำที่โปรเจกต์ โมเดลภาษาขนาดใหญ่ รุ่นแรก ๆ เริ่มต้นจากการ scrape Reddit
    มันคงดีกว่าขยะสุ่ม ๆ จาก Common Crawl แต่โลกได้ย้ายไปที่อื่นแล้ว

    • อยากรู้ว่าย้ายไปที่ไหน
    • ผมว่ายังมีชุมชนดี ๆ อยู่
      ขึ้นกับม็อดมาก และอย่างเช่นที่ /r/anime ก็ไม่มีอะไรมาแทนได้
  • ถ้าเป็นผมคงไม่ตอบกลับด้วยซ้ำ
    API ที่จำเป็นมีแค่ HTTP เท่านั้น
    คนที่พยายามทำให้เราเชื่อว่าพวกเขามีสิทธิ์กำหนดได้ว่าเราจะใช้ user agent แบบไหน ก็แค่กำลังพยายามควบคุมสิ่งที่มากกว่าสิ่งที่พวกเขาเป็นเจ้าของ

  • ถ้าเติม .rss ต่อท้าย URL ของซับเรดดิต ก็จะได้ ฟีด RSS ด้วย
    โดยธรรมชาติแล้ว RSS ถูกออกแบบมาให้บอต หรือก็คือโปรแกรมคอมพิวเตอร์อ่านอยู่แล้ว เลยสงสัยว่า Reddit มีจุดยืนอย่างไร
    แบบนี้ก็ถือว่าเป็น “การเลี่ยงข้อจำกัด API” ด้วยหรือเปล่า?

    • ผมก็ใช้แบบนั้นเหมือนกัน
      ฝั่ง Reddit อาจลืม RSS ไปแล้ว หรือไม่ก็ไม่สนใจเพราะมันไม่ได้ให้คอนเทนต์ทั้งหมด จึงไม่ค่อยมีประโยชน์กับแอป
      เทคนิคของผมคือสมัครฟีด “ยอดนิยมประจำสัปดาห์” ของแต่ละซับเรดดิต วิธีนี้ช่วยลดจำนวนโพสต์ที่ถาโถมเข้ามาให้อยู่ในระดับที่จัดการได้พอสมควร
  • การปั่นแต่งเรื่องเล่า กลายเป็นธุรกิจใหญ่ทั่วโลกแล้ว
    นั่นแหละคือเหตุผลที่ Reddit พยายามบังคับให้จ่ายค่า API ปีละ 30,000 ดอลลาร์ และ Twitter/X ก็ทำแบบเดียวกันด้วยเหตุผลเดียวกัน