YouTube에서 채널 RSS 피드를 찾는 방법은 무엇입니까?


13

YouTube는 공식적으로 채널 RSS 피드를 지원 하지만 피드 를 찾는 데 어려움을 겪고 있습니다. 썬더 버드에서는 채널 URL을 사용할 수 없습니다. Firefox는 현재 피드를 감지 할 수없는 것 같습니다 (과거에는 작동했지만 다소 불안정하고 페이지를 새로 고치는 것이 때때로 필요함). 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. 그 직후에는 다음과 같은 형식의 임의 코드 (채널 ID)가 있습니다. 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

업데이트 해 주셔서 감사합니다. 표준 방법 을 사용하여 북마크를 설치할 수 없었습니다 (책갈피 도구 모음에 코드 드래그). 내 경험에 따르면 javascript:적어도 북마크 설치는 브라우저 설치 절차에 도움이됩니다.
user598527

1

언급 한 방법은 현재 작동하지만 일부 상황에서만 찾을 정확한 텍스트는 data-channel-external-id이며 IE11에서 작동합니다. <channel-id>채널 URL을 얻는 것이 훨씬 쉽습니다.

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

어쨌든이 작업을 수행하는 데 더 오래 지원되는 방법이 있으며 이는 YouTube가 RSS 피드를 통해 연결하려는 채널을 구독하기를 좋아한다는 사실을 반영합니다.

RSS 피드를 찾고있는 채널을 구독 한 경우 구독 관리 페이지에 표시되어 있으며 "RSS 리더로 내보내기"단추 를 찾을 때까지 아래로 스크롤 할 수 있습니다 . 해당 단추를 클릭하면 구독 한 모든 채널에 대한 채널 이름과 RSS 피드가있는 XML 파일을 다운로드 할 수 있습니다.

이러한 RSS 피드는 YouTube의 노출 방식에 변화가있는 경우 항상 업데이트됩니다.


1

콘솔을 열고 F12실행하십시오

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

내가 얻을 TypeError: window.ytInitialData.metadata is undefined 오류를 파이어 폭스에서 실행하는 경우. 이 명령이 채널의 모든 페이지에서 작동해야합니까?
user598527

이 모든 페이지에서 작동하지 않습니다처럼 흠 보인다
goweon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.