programing

2015년 4월 20일(v3 API 없이) 이후 유튜브 채널 RSS 피드를 얻는 방법은 무엇입니까?

linuxpc 2023. 8. 19. 09:55
반응형

2015년 4월 20일(v3 API 없이) 이후 유튜브 채널 RSS 피드를 얻는 방법은 무엇입니까?

이제 API v2가 사라졌으니 v3 API 없이 채널의 간단한 RSS 피드를 얻을 수 있는 방법은 무엇입니까?대상이 피드 판독기인 경우 야후 파이프 또는 v3 API용 애플리케이션을 만드는 것보다 간단한 해결 방법을 알고 있습니다.RSS 피드만 있으면 됩니다.그것은 지금까지 공개적으로 이용 가능했고 지금 당장 멈출 수 있다고 생각합니다.그러니 API 키 없이 더 이상 액세스하지 않는 것이 어떻겠습니까?

RSS Reader 섹션 https://support.google.com/youtube/answer/6098135?hl=en 에는 구독을 OPML 파일로 내보낼 수 있는 옵션이 있습니다.그런 다음 OPML의 내용을 보면 피드를 추출할 수 있으며 각 피드의 구조는 다음과 같습니다.

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

따라서 채널 ID를 알면 이 구조에서 새 피드를 생성할 수 있습니다.이런 종류의 피드는 "https://youtube.com/devicesupport " 오류가 발생하지 않기 때문에 계속 작동할 것으로 예상됩니다.

다음과 같은 피드를 얻을 수 있습니다.

https://www.youtube.com/feeds/videos.xml?channel_id=CHANNELID
https://www.youtube.com/feeds/videos.xml?user=USERNAME
https://www.youtube.com/feeds/videos.xml?playlist_id=YOUR_YOUTUBE_PLAYLIST_NUMBER

매개 변수가 있는 JSON 형식).&alt=JSON는 더 이상 는 더 이상 지원되지 않습니다.

또한 개발자 콘솔에서 YouTube 동영상에 대한 공개 액세스를 위한 API 키를 요청할 수 있으며 다음과 같은 JSON 형식의 YouTube 비디오, 재생 목록을 얻을 수 있습니다.

- Get Channels: 
  https://www.googleapis.com/youtube/v3/channels?part=snippet%2CcontentDetails&forUsername={YOUR_USER_NAME}&key={YOUR_API_KEY}
- Get Playlists: 
  https://www.googleapis.com/youtube/v3/playlists?part=snippet%2CcontentDetails&channelId={YOUR_CHANNEL_ID}&key={YOUR_API_KEY}
- Get Playlist Videos: 
  https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails%2Cstatus&playlistId={YOUR_PLAYLIST_ID}&key={YOUR_API_KEY}

YouTube v3 문서의 자세한 정보.

튜브의 왼쪽 창에서 구독을 클릭합니다.페이지 중앙에 모든 구독이 열립니다.아래로 스크롤하면 모든 구독의 xml 파일을 생성하는 RSS 판독기로 내보내기 버튼을 찾을 수 있습니다.저는 이것을 하고 제가 선호하는 RSS 리더에 피드로 추가했습니다.

채널 페이지를 Youtube Youtube 채널 페이지를 확인할 수 .<head>다음과 같은 RSS 메타 노드를 찾을 수 있습니다.

<link rel="alternate" 
      type="application/rss+xml" title="RSS"     
      href="https://www.youtube.com/feeds/videos.xml?channel_id=UCn8zNIfYAQNdrFRrr8oibKw">

이렇게 하면 필요한 데이터를 얻을 수 있습니다.

유튜브 채널 페이지의 소스 코드에서 data-channel-external-id 속성을 검색하여 채널 ID를 가져옵니다.(헬크 덕분에).

이 코드는 피드에서 모든 비디오 제목과 ID를 가져와 배열에 덤프합니다.

$channel_id = 'XXX'; // put the channel id here
$youtube = file_get_contents('https://www.youtube.com/feeds/videos.xml?channel_id='.$channel_id);
$xml = simplexml_load_string($youtube, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$youtube = json_decode($json, true);
$yt_vids = array();
$count = 0;
foreach ($youtube['entry'] as $k => $v) {
    $yt_vids[$count]['id'] = str_replace('http://www.youtube.com/watch?v=', '', $v['link']['@attributes']['href']);
    $yt_vids[$count]['title'] = $v['title'];
    $count++;
}
print_r($yt_vids);

저는 비디오 링크를 위해 유튜브 URL을 스크랩한 다음 원자 피드로 출력하는 작은 PHP 스크립트를 만들었습니다: https://gist.github.com/Skalman/801436d9693ff03bc4ce

https://www.youtube.com/user/scishow/videos 과 같은 URL이 작동합니다.

주의사항:

  • 이 도구는 날짜를 긁지 않습니다.
  • 재생 목록에 100개 이상의 비디오가 포함되지 않습니다.
  • 재생 목록에는 "모두 재생" 링크가 포함됩니다.
  • 작성자가 채널에 대해서만 올바르게 설정됨(예: 재생 목록이 아님)
  • 아마도 당신이 이것을 너무 많이 사용하면 유튜브가 당신을 차단할 것입니다(하지만 바라건대 한계가 충분히 높기를 바랍니다).
  • 아마 몇 명 더...

또한 RSS-Bridge 스위치는 Twitter, Google+, Flickr, Youtube, Identi.ca 등과 같은 많은 서비스에서 RSS 피드를 추출할 수 있습니다.

출처: https://github.com/sebsauvage/rss-bridge

데모 서버: https://bridge.suumitsu.eu/

다음 URL을 사용해 보십시오. https://www.youtube.com/feeds/videos.xml?user=USERNAME

저한테는 잘 맞습니다.

게시물: 내블그게서에:http://tcodesblog.blogspot.com/search/label/howtofindyouryoutubechannelfeed


유튜브 채널 피드를 찾는 방법

In the old days, it was easy (2009) but now a days it is much harder to find it (2012-present). Here is a quick way to find your new feed from your YouTube Channel. Remember to follow the list correctly!

  1. 먼저 채널 ID 찾기: 대시보드의 YouTube 채널로 이동하여 이 작업을 수행할 수 있습니다.

  2. 채널 ID 복사: 대시보드 내에서 YouTube 채널을 방문하면 채널 ID를 확인할 수 있습니다.

  3. 채널 ID 복사:채널 ID를 복사하고 아래의 채널 ID채널 ID로 바꿉니다.https://www.youtube.com/feeds/videos.xml?channel_id=channelidgoeshere

  4. 전체 YouTube 채널 피드를 복사하고 단순화된 피드를 만듭니다.의 FeedBurner에 더 하여 이 작업을 할 수 .http://www.feedburner.com/Google 계정이 필요합니다.무료로 사용할 수 있습니다.), 이것도 구글의 일부입니다.새 피드를 생성합니다(피드에 동영상이 표시되는지 확인하고 Digg Reader, Apple iPhone Apple News App, Apple iPhone 팟캐스트 앱, Feedly 등과 같은 다른 피드 판독기와 호환되도록 하려면). 또는 전체 YouTube 채널 피드를 복사하여 기존 피드를 편집하고 일반적으로 피드 세부 정보 저장을 클릭합니다.

  5. 이제 YouTube 채널 피드가 작동하고 피드버너 피드의 피드 파일에서 비디오를 직접 볼 수 있습니다. 것유피있습다니로드내에브튜은▁at▁at▁feed▁mine▁youtube다▁a니내있▁is습▁as로드.https://www.youtube.com/feeds/videos.xml?channel_id=UCvFR6YxwnYfLt_QqRFk_r3g에서 버에서너피드로.http://feeds.feedburner.com/youtube/warrenwoodhouse예를 들어, 내 비디오를 표시하려면 내 비디오를 업데이트해야 하므로 텍스트 형식으로만 표시되는 내 비디오를 사용합니다.FeedBurner에서 다양한 설정을 변경하고 다른 작업을 수행할 수 있으므로 무료이며 사용하기 쉬우므로 시도해 볼 가치가 있습니다.FeedBurner 또는 다른 피드 생성 서비스를 사용하는 것을 강력히 추천합니다. 하지만 FeedBurner에는 교차 피드 구독 서비스 메커니즘(USM - 범용 구독 메커니즘)도 포함되어 있기 때문에 최선의 선택입니다. 즉, 올바른 앱이 설치된 컴퓨터, 휴대폰, 그리고 다른 호환 장치에서 피드를 읽을 수 있습니다.이전 웹 브라우저(예: 웹 조각 및 RSS/Atom/XML 피드를 지원하는 Internet Explorer)를 통해 액세스할 수 있습니다.

설정을 USM(Universal Subscription Mechanism)으로 올바르게 설정한 경우 Apple iPhone, Apple iPod Touch 및 Apple iPad의 Apple iPhone 뉴스 앱 및 Apple iPhone 팟캐스트 앱에서도 피드를 열 수 있습니다.이 기능이 적용되면 다른 서비스와 장치를 통해 피드를 볼 수 있습니다.

FeedBurner에 대한 피드를 사용하면 이메일 구독, 헤드라인 애니메이터(최신 게시물에 대한 링크를 보여주는 방법) 및 구독자 수, 치클렛 및 기타 멋진 정보를 만들 수 있습니다.

이 답변이 유용한 것으로 입증되기를 바라며, 저의 멋진 코딩 관행을 더 보고 싶다면 언제든지 제 T-Codes 웹사이트를 확인하십시오.http://warrenwoodhouse.webs.com/codes더 많은 것들을 위해.

여기에 Yahoo Pipes의 예를 만들었습니다.
http://pipes.yahoo.com/pipes/pipe.info?_id=6eeff0110a81f2ab94e8472620770b11

API 키를 채우지 않고 "Run Pipe"를 눌러 이 파이프를 실행할 수 있습니다.그러나 복제 시에는 자신의 API Key와 채널 ID(채널 API를 통해 얻을 수 있음)를 제공해야 합니다.YouTube 사용자 이름으로 channelId 가져오기를 자동화하고 싶었지만 파이프하기가 쉽지 않았습니다.

새 구독 비디오의 RSS 피드를 만드는 배치 스크립트를 만들었습니다.API 키가 필요하지 않습니다.이 스크립트는 YouTube-DL 및 Xidel의 두 가지 외부 도구를 사용합니다.

어쨌든, 다음 스레드를 읽고 98번 게시물로 이동하여 스크립트를 다운로드하십시오. http://code.google.com/p/gdata-issues/issues/detail?id=3946#c98

나는 누군가가 이것을 php, python, javascript, powershell 또는 bash로 코딩하기를 바랍니다.

유튜브 반응에 약간의 변화가 있는 것 같아서 컬을 사용하여 RSS 피드에서 채널 ID를 얻기 위해 약간의 변화를 줍니다.

$channel_id = 'XXXXXXXX'; // put the channel id here

//using curl
$url = 'https://www.youtube.com/feeds/videos.xml?channel_id='.$channel_id.'&orderby=published';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
//curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$response  = curl_exec($ch);
curl_close($ch);

$response=simplexml_load_string($response);
$json = json_encode($response);
$youtube= json_decode($json, true);

$count = 0;
if(isset($youtube['entry']['0']) && $youtube['entry']['0']!=array())
{
    foreach ($youtube['entry'] as $k => $v) {
        $yt_vids[$count]['id'] = str_replace('http://www.youtube.com/watch?v=', '', $v['link']['@attributes']['href']);
        $yt_vids[$count]['title'] = $v['title'];
        $count++;
    }
}
else
{
    $yt_vids[$count]['id']=str_replace('http://www.youtube.com/watch?v=', '', $youtube['entry']['link']['@attributes']['href']);
    $yt_vids[$count]['title']=$youtube['title'];
}
echo "<pre>";
print_r($yt_vids);

아래 코드를 사용하여 유튜브 피드를 워드프레스 사용자 지정 필드 "ACF 플러그인"FancyBox와 통합했습니다.

    <?php  
    $channel_id = get_field('youtube_chanel_id'); //ACF text field
    if ($channel_id){ // if channel_id not empty -- START
    $youtube = file_get_contents('https://www.youtube.com/feeds/videos.xml?channel_id='.$channel_id);
    $xml = simplexml_load_string($youtube, "SimpleXMLElement", LIBXML_NOCDATA);
    $json = json_encode($xml);
    $youtube = json_decode($json, true);
        echo'<div class="col-md-12 youtube-videos-feed">';  
        foreach ($youtube['entry'] as $k => $v) {
            $id = str_replace(array("yt:video:"), "", $v['id']); // Remove "yt:video:" from ID value
            //$date = $v['updated']; // video updated date (disabled for now)
            $title = $v['title']; // video title
            echo '<a class="with-video" href="https://www.youtube.com/watch?v=',$id,'&autoplay=1&rel=0&controls=0&showinfo=0&modestbranding=0" data-fancybox="videos"  data-caption="',$title,'" title="',$title,'" >
                <div class="col-md-3 main-image post-image img-fancy">
                    <img src="https://img.youtube.com/vi/',$id,'/0.jpg" alt="',$title,'" >
                </div>
            </a>';
        }
        echo'</div>';
    } // if channel_id not empty -- END
 ?>

동영상, 채널 및 내비게이션 페이지에 RSS 아이콘을 삽입하는 Youtube RSS-ify라는 Chrome 확장 기능을 찾았습니다.그것은 바로 제가 찾던 것이었습니다.

Youtube RSS-ify extension screenshot

아이콘은 다음과 같습니다.

Youtube RSS-ify RSS icon

저는 훌륭한 RSS 파서를 사용하는 것을 제안합니다.그 중 많은 것들이 이용 가능하지만, 제 개인적인 프로젝트에 사용했던 최고의 것 중 하나인 http://simplepie.org/, 을 사용해 보실 수 있습니다.

몇 가지 예를 들어 꽤 잘 문서화되어 있습니다.

사용 예

참고: 유튜브 채널 대학 유머를 사용하여 채널 페이지 자체에서 얻을 수 있습니다.

<?php
include_once('../autoloader.php');
// Parse it
$feed = new SimplePie();
$feed->set_feed_url('https://www.youtube.com/feeds/videos.xml?channel_id=UCPDXXXJj9nax0fr0Wfc048g');
$feed->enable_cache(false);
$feed->init();

$items = $feed->get_items();

foreach ($items as $item)
{
    echo $item->get_title() . "\n";
}

var_dump($feed->get_item_quantity());

채널 ID를 가져오는 가장 쉬운 방법:

헤드라인 등록 관리자(왼쪽 패널, 헤드라인 등록 아래)를 열고 원하는 사용자를 클릭합니다.

은 "같형다습다니과음식은다:▁form니같습▁the▁be▁will" 형태가 될 것입니다.https://www.youtube.com/channel/XXXXXXXXXXXXXXXXX

따라서 피드 URL은 다음과 같아야 합니다.

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

참고: 사용자 이름이 변경될 수 있으므로 사용자 이름 대신 채널 ID를 사용하는 것이 좋습니다.

언급URL : https://stackoverflow.com/questions/29752447/how-to-get-a-youtube-channel-rss-feed-after-2015-april-20-without-v3-api

반응형