จะหาฟีด RSS ช่องทางบน YouTube ได้อย่างไร?


13

YouTube สนับสนุนฟีด RSS ของช่องอย่างเป็นทางการแต่ฉันกำลังเผชิญกับความยากลำบากอย่างมากในการค้นหาฟีด การใช้ URL ช่องเป็นไปไม่ได้อย่างน้อยใน Thunderbird Firefox ดูเหมือนจะไม่สามารถตรวจสอบฟีด (เคยทำงานในอดีต แต่ค่อนข้างจะไม่สามารถทำได้และการรีเฟรชหน้าเว็บเป็นสิ่งจำเป็นในบางครั้ง) และ Google Chrome ไม่มีการสนับสนุน RSS ดั้งเดิมสำหรับความรู้ของฉัน

มีวิธีสร้างฟีดด้วยตนเองแต่อาจใช้งานไม่ได้อีกต่อไป ( channel-external-idปรากฏว่าไม่มีอยู่ในแหล่งที่มาของทุกช่องมีchannel_idแทน):

  1. ดูรหัสต้นฉบับของหน้า
  2. ค้นหาข้อความต่อไปนี้: channel-external-id
  3. รับค่าสำหรับองค์ประกอบนั้น
  4. แทนที่ค่านั้นเป็น URL นี้:

https://www.youtube.com/feeds/videos.xml?channel_id=UCBcRF18a7Qf58cCRy5xuWwQ

ช่องทางตัวอย่าง: https://www.youtube.com/user/SesameStreet/videos

คำตอบ:


10

จริงๆแล้วสิ่งที่คุณแนะนำเป็นสิ่งที่อยู่ฟีด RSS externalIdแม้ว่ามันจะถูกเปลี่ยนแปลงเล็กน้อยจากขั้นตอนที่อธิบายในคำถามของคุณมีสตริงถูกต้องในการค้นหา

ด้วยสคริปต์

สคริปต์ต่อไปนี้จะแยก URL ฟีดและจะส่งออกไปยังคอนโซล:

for (var arrScripts = document.getElementsByTagName('script'), i = 0; i < arrScripts.length; i++) {
    if (arrScripts[i].textContent.indexOf('externalId') != -1) {
        var channelId = arrScripts[i].textContent.match(/\"externalId\"\s*\:\s*\"(.*?)\"/)[1];
        var channelRss = 'https://www.youtube.com/feeds/videos.xml?channel_id=' + channelId;
        var channelTitle = document.title.match(/\(?\d*\)?\s?(.*?)\s\-\sYouTube/)[1];
        console.log('The rss feed of the channel \'' + channelTitle + '\' is:\n' + channelRss);
        break;
    }
}

ผลลัพธ์:

The rss feed of the channel 'Sesame Street' is:
https://www.youtube.com/feeds/videos.xml?channel_id=UCoookXUzPciGrEZEXmh4Jjg

จะบันทึกที่ไหน

  1. คุณสามารถใช้มันเป็นสคริปต์ผู้ใช้ (เช่นGreasemonkeyหรือTampermonkeyเป็นต้น)
  2. คุณสามารถใช้มันเป็นBookmarklet
  3. คัดลอกรหัสและวางลงในคอนโซลนักพัฒนาซอฟต์แวร์

หมายเหตุ: หากคุณเลือกตัวเลือก1หรือ2- จะสะดวกกว่าที่จะแทนที่console.logคำสั่งด้วยalertเพื่อรับป๊อปอัพแทนที่จะส่งข้อความไปยังคอนโซล


ด้วยมือ

  1. เปิดหน้าช่อง YouTube ที่ต้องการ
  2. เปิดview-sourceหน้าดังกล่าว (หนึ่งในรายการต่อไปนี้):
    • Ctrl+ U.
    • คลิกขวา View page source->
    • เพิ่มview-source:ไปยังจุดเริ่มต้นของ URL ในแถบที่อยู่
  3. ค้นหาคำศัพท์ externalId
  4. หลังจากนั้นจะมีรหัสสุ่ม (รหัสช่อง) ในรูปแบบของ: UCoookXUzPciGrEZEXmh4Jjg
  5. เพิ่มรหัสที่คุณพบว่าเป็นคำต่อท้ายhttps://www.youtube.com/feeds/videos.xml?channel_id=และตอนนี้ก็คือฟีด RSS ของคุณสำหรับช่องนั้น

rssUrlน่าเสียดายที่ไม่ได้อยู่ในแหล่งที่มาของทุกช่องทางเช่นและview-source:https://www.youtube.com/channel/UC0YagOInbZxj10gaWwb1Nag/ view-source:https://www.youtube.com/channel/UCEBTfxJ13zkpZVbZTF3aukg
user598527

1
ฉันจะตรวจสอบและปรับปรุงคำตอบของฉันขอบคุณ
arieljannai

ฉันพบสิ่งนี้ฉันจะอัปเดตคำตอบของฉันในวันนี้!
arieljannai

@ user598527 อัปเดต :)
arieljannai

ขอบคุณสำหรับการอัพเดท ฉันไม่สามารถติดตั้ง bookmarklet ได้โดยใช้วิธีมาตรฐาน (การลากรหัสไปยังแถบเครื่องมือบุ๊คมาร์ค) จากประสบการณ์ของฉัน bookmarklets เริ่มต้นด้วยjavascript:อย่างน้อยที่จะช่วยให้มีขั้นตอนการติดเบราว์เซอร์
user598527

1

วิธีที่คุณพูดถึงใช้งานได้ในปัจจุบัน แต่ในบางสถานการณ์ข้อความที่แน่นอนที่จะค้นหาคือ data-channel-external-id และสามารถทำงานได้ใน IE11 ง่ายยิ่งกว่านั้นคือได้รับ<channel-id>URL ของช่องซึ่งประกอบด้วยสิ่งนี้

https://www.youtube.com/channel/<channel-id>

อย่างไรก็ตามมีวิธีที่ได้รับการสนับสนุนนานกว่านี้และมันสะท้อนให้เห็นถึงความจริงที่ว่า YouTube ชอบให้คุณสมัครช่องที่คุณต้องการเชื่อมโยงผ่านฟีด RSS

หากคุณสมัครรับข้อมูลช่องที่คุณกำลังมองหาฟีด RSS คุณสามารถค้นหาได้จากรายการในหน้าจัดการการสมัครสมาชิกของคุณคุณสามารถเลื่อนลงมาจนสุดจนกว่าคุณจะพบปุ่ม"ส่งออกในโปรแกรมอ่าน RSS" : คลิกที่ปุ่มนั้น อนุญาตให้คุณดาวน์โหลดไฟล์ XML ที่มีชื่อช่องและฟีด RSS สำหรับช่องที่สมัครทั้งหมด

ฟีด RSS เหล่านั้นจะได้รับการอัปเดตอยู่เสมอหากมีอะไรเปลี่ยนแปลงในวิธีที่ YouTube เปิดเผย


1

เปิดคอนโซลด้วยF12และดำเนินการ

window["ytInitialData"].metadata.channelMetadataRenderer.rssUrl

ฉันได้รับTypeError: window.ytInitialData.metadata is undefined ข้อผิดพลาดเมื่อทำงานใน Firefox คำสั่งนี้ควรใช้ได้กับทุกหน้าของช่องหรือไม่?
user598527

อืมดูเหมือนว่ามันจะไม่ทำงานในทุกหน้า
goweon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.